使用[object objectAtIndex:]防止崩溃(超出边界)

时间:2010-06-02 15:49:57

标签: cocoa-touch arrays

我想知道在获取索引之前是否有办法验证索引是否存在。

所以这样可以保护我的代码:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (2) beyond bounds (0)'

就像在PHP中一样,你可以这样做:isset($object[10]);如果它存在,它将返回true。

Objective-C / Cocoa中是否有这样的方法?

谢谢!

1 个答案:

答案 0 :(得分:1)

没有。但是,在调用-objectAtIndex:之前,您可以检查索引是否高于数组的计数。

if (i < [array count])
   do_something_with([array objectAtIndex:i]);

与PHP不同,Objective-C的NSArray实际上是一个数组。索引始终是数字和连续的。 (在ObjC中,关联数组称为NSDictionary。)