代码之家  ›  专栏  ›  技术社区  ›  Tommy B.

使用[对象对象索引:]防止崩溃(超出界限)

  •  0
  • Tommy B.  · 技术社区  · 16 年前

    我想知道在获取索引之前是否有一种方法来验证它是否存在。

    所以这是保护我的代码不受以下影响的方法:

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

    就像在PHP中一样,您可以做到: isset($object[10]); 如果它存在,它会返回真。

    目标C/COCO中是否有这样的方法?

    谢谢!

    1 回复  |  直到 16 年前
        1
  •  1
  •   kennytm    16 年前

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

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

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