firstObject vs objectAtIndex:0的方法用法有什么不同?

Kea*_*ale 12 nsarray ios

今天我测试了使用firstObject和objectAtIndex:0.如果数组的大小为0,则使用前者不会导致崩溃,而后者会导致崩溃.所以我认为使用firstObject比使用objectAtIndex:0更好.但是在objectAtIndex:0上使用firstObject是否存在缺陷?

我也一直在阅读NSArray文档,我很惊讶并想知道为什么他们没有在文档中提到这个事实.

vir*_*ndh 22

有一个关键的区别.使用firstObject收益nil,如果是没有的.objectAtIndex:0如果没有对象,使用会使你的应用程序崩溃(引发异常).从用户体验的角度来看,崩溃是高度提倡的,因此使用起来更安全firstObject.

最大的陷阱:firstObject自iOS 4以来一直可用,但在iOS 7之前是私有API.

  • 是的,但至少你可以检查nil而不是崩溃应用程序,这对普通用户来说最终看起来很糟糕...... (5认同)
  • 不符合预期大小的数组是逻辑错误的结果.崩溃通常比试图进行更安全. (3认同)