如果我尝试使用 objectAtIndex:x 访问 nsmutableArray 并且如果我在此索引处没有对象,我的应用程序总是会崩溃。
所以我的问题是:我怎样才能检查这个索引是否有东西,而不会使应用程序崩溃?
我希望你能理解我的问题。谢谢,亚历克斯
如果我尝试使用 objectAtIndex:x 访问 nsmutableArray 并且如果我在此索引处没有对象,我的应用程序总是会崩溃。
所以我的问题是:我怎样才能检查这个索引是否有东西,而不会使应用程序崩溃?
我希望你能理解我的问题。谢谢,亚历克斯
检查您的索引是否在数组的边界范围内:
if (index >=0 && index < [myArray count])
...
NSArray 有一个名为“count”的方法。在你的可变数组上调用count ,它会告诉你数组中元素的数量。
如果您在数组的范围内,您将始终在 0 和 之间的特定索引处有一个对象[array count]
,因为数组中不能有nil
值的间隙。
您有两个选择:使用该count
方法确保您在数组的范围内,或者在尝试使用时捕获异常使用objectAtIndex:
计数检查范围将比捕获异常低得多的开销。
如果您不知道 - NSArray 中不允许有“洞” - 从索引 0 到数组末尾 ([ array count]-1
) 的对象都可以访问。
尝试这个
for(i=0; i< [myMutableArrayObject count]; i++) {
NSLog(@"%@",[[myMutableArrayObject objectAtIndex: i] myMethodDefined]);
}
在这里,我们使用了一个名为count的预定义方法,它返回 MutableArray 对象中的对象数量,然后是另一个方法objectAtIndex,它以 0 到 (count – 1) 的间隔迭代对象。
问候, 苏米特