2

如果我尝试使用 objectAtIndex:x 访问 nsmutableArray 并且如果我在此索引处没有对象,我的应用程序总是会崩溃。

所以我的问题是:我怎样才能检查这个索引是否有东西,而不会使应用程序崩溃?

我希望你能理解我的问题。谢谢,亚历克斯

4

5 回答 5

5

检查您的索引是否在数组的边界范围内:

   if (index >=0 && index < [myArray count])
    ...
于 2009-11-27T14:14:18.540 回答
1

NSArray 有一个名为“count”的方法。在你的可变数组上调用count ,它会告诉你数组中元素的数量。

于 2009-11-27T14:13:54.707 回答
1

如果您在数组的范围内,您将始终在 0 和 之间的特定索引处有一个对象[array count],因为数组中不能有nil值的间隙。

于 2009-11-27T14:37:49.370 回答
1

您有两个选择:使用该count方法确保您在数组的范围内,或者在尝试使用时捕获异常使用objectAtIndex:计数检查范围将比捕获异常低得多的开销。

如果您不知道 - NSArray 中不允许有“洞” - 从索引 0 到数组末尾 ([ array count]-1) 的对象都可以访问。

于 2009-12-01T17:27:52.773 回答
0

尝试这个

for(i=0; i< [myMutableArrayObject count]; i++) {
NSLog(@"%@",[[myMutableArrayObject objectAtIndex: i] myMethodDefined]);
}

在这里,我们使用了一个名为count的预定义方法,它返回 MutableArray 对象中的对象数量,然后是另一个方法objectAtIndex,它以 0 到 (count – 1) 的间隔迭代对象。

问候, 苏米特

于 2009-11-30T17:28:37.480 回答