NSArray firstObject和objectAtIndex之间的区别:0

时间:2016-05-05 08:26:17

标签: ios objective-c nsarray

在以下示例中,object objectAtIndex:0崩溃,但firstObject产生的值为nil。为什么会这样?

{{1}}

5 个答案:

答案 0 :(得分:7)

使用firstObject是系统定义的API,如果没有,则返回nil。但是,如果您尝试访问objectAtIndex,它将提供NSRange异常,应用程序将崩溃。

答案 1 :(得分:4)

因为它们的工作方式和记录方式不同。它明确指出,这就是它们的工作方式。 firstObject在Obj-C世界中是“安全的”,因为如果没有任何关系,它将返回nil和无操作。

答案 2 :(得分:3)

在框架中,对于firstObject方法,可能会检查数组是否为Empty然后返回nil。但是对于objectAtIndex:将尝试在给定索引处获取对象,并且数组为空,因此它会导致原因超出范围。

答案 3 :(得分:2)

这是iOS7功能

SO question

strtok

答案 4 :(得分:0)

[array firstObject]array[0]之间存在很大差异。第一个firstObject nil和第二个在数组为空时抛出异常。假设firstObject的工作方式与lastObject类似 从程序员的角度来看,崩溃并不是一件好事,因此最好使用firstObject