Ios 如何使用nil元素创建二维数组

Ios 如何使用nil元素创建二维数组,ios,multidimensional-array,nsmutablearray,nsarray,null,Ios,Multidimensional Array,Nsmutablearray,Nsarray,Null,在国际象棋游戏中,我想使用二维数组来跟踪棋盘上棋子的位置 最初我想创建一个NSMuteableArray,并通过nil指示未占用的方块。被占用的插槽中应该有一个指向工件对象的指针 但是,以下代码: NSMutableArray* _board; ... _board = [[NSMutableArray alloc] init]; for (int i = 0; i < 8; i++) { NSMutableArray *row = [[NSMutableArray alloc]

在国际象棋游戏中,我想使用二维数组来跟踪棋盘上棋子的位置

最初我想创建一个
NSMuteableArray
,并通过
nil
指示未占用的方块。被占用的插槽中应该有一个指向
工件
对象的指针

但是,以下代码:

NSMutableArray* _board;
...

_board = [[NSMutableArray alloc] init];
for (int i = 0; i < 8; i++) {
    NSMutableArray *row = [[NSMutableArray alloc] init];
    for (int j = 0; j < 8; j++) {
        [row addObject:nil];
    }
    [_board addObject:row];
}
因此,
nil
不能作为参数传递给
addObject
。。。在这里做什么?

试试看

NSMutableArray* _board;
...

_board = [[NSMutableArray alloc] init];
for (int i = 0; i < 8; i++) {
    NSMutableArray *row = [[NSMutableArray alloc] init];
    for (int j = 0; j < 8; j++) {
        [row addObject:[NSNull null]];
    }
    [_board addObject:row];
}
NSMutableArray*\u板;
...
_board=[[NSMutableArray alloc]init];
对于(int i=0;i<8;i++){
NSMUTABLEARRY*行=[[NSMUTABLEARRY alloc]init];
对于(int j=0;j<8;j++){
[行添加对象:[NSNull];
}
[_boardaddobject:row];
}

使用
[NSNull null]
而不是
nil
的原因可以看出

谢谢,但是如何检查棋盘上是否有空位呢?如果([row objectAtIndex:i]==[NSNull null null])//您的语句实际上[NSNull null null]将返回单例零,这样我们就可以轻松地比较它,而不存在任何指针(地址)问题
NSMutableArray* _board;
...

_board = [[NSMutableArray alloc] init];
for (int i = 0; i < 8; i++) {
    NSMutableArray *row = [[NSMutableArray alloc] init];
    for (int j = 0; j < 8; j++) {
        [row addObject:[NSNull null]];
    }
    [_board addObject:row];
}