检查 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 数组中,指针数组可以包含空值。
我正在尝试检查数组中的某个位置是否为 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 数组中,指针数组可以包含空值。