检查 NSArray 中的特定位置是否为 nil

Check wether a specific place in NSArray is nil

我正在尝试检查数组中的某个位置是否为 nil,如下所示:

if (resultArray[1] == nil) {
    NSLog(@"...");
}

但它总是崩溃并显示消息:
[_PFArray objectAtIndex:]: index (1) beyond bounds (1)'

我该如何解决这个问题,或者有任何其他方法可以检查它吗?
谢谢!

if (resultArray[1] == nil) {
    NSLog(@"..."); // <-- will NEVER be called
}

NSArray 不能容纳 nils。

试试索引 0,因为你的数组只包含一个元素,那就是索引 0,最后一个可能的数组索引是 [array count] - 1。或者作为所有指数的范围:0..[array count] - 1

if([resultArray count] > 1){
    // holds at least 2 objects, valid indices: `0..[array count] - 1`
} else ([resultArray count]){
    // holds exactly 1 object, valid indices: `0..0`
} else {
   // empty, no valid index
}

数组中不能有空位。数组中的每个槽都必须包含一个对象。您使用 array.count 计算出数组包含多少个对象。如果 array.count returns 0,则数组为空(或 nil,这可能会造成混淆,但那是另一回事了。)

如果 array.count returns 3,则数组[0]、数组[1] 和数组[2] 必须 包含非零值。这就是 NSArray 对象的工作方式。

这与 C 数组不同,在 C 数组中,指针数组可以包含空值。