我正在尝试检查我的数组中的某个位置是否为零:
if (resultArray[1] == nil) {
NSLog(@"...");
}
但它总是与消息崩溃:
[_PFArray objectAtIndex:]: index (1) beyond bounds (1)'
我该如何解决这个问题,还是有其他方法可以检查它? 谢谢!
答案 0 :(得分: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
}
答案 1 :(得分:0)
阵列中不能有空位。数组中的每个插槽都必须包含一个对象。您可以使用array.count来确定数组包含的对象数。如果array.count返回0,则数组为空(或者为nil,这可能令人困惑,但那是另一个故事。)
如果array.count返回3,则array [0],array [1]和array [2] 必须包含非零值。这就是NSArray对象的工作原理。
这与C数组不同,其中指针数组CAN包含空值。