Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 为什么NSArray没有firstObject方法?_Objective C_Ios - Fatal编程技术网

Objective c 为什么NSArray没有firstObject方法?

Objective c 为什么NSArray没有firstObject方法?,objective-c,ios,Objective C,Ios,但是它确实有一个lastObject,有人知道为什么吗?我猜是因为lastObject减少了更多的样板代码。您可以使用现代Objective-C语法使用[array lastObject]替换[array objectAtIndex:array.count-1]或数组[array.count-1] 而在firstObject的情况下,您只需检查[array objectAtIndex:0]或array[0]。 它只是有助于简化工作,以便能够调用lastObject,而不是键入该函数 更新 正如@

但是它确实有一个lastObject,有人知道为什么吗?

我猜是因为
lastObject
减少了更多的样板代码。您可以使用现代Objective-C语法使用
[array lastObject]
替换
[array objectAtIndex:array.count-1]
数组[array.count-1]

而在
firstObject
的情况下,您只需检查
[array objectAtIndex:0]
array[0]
。 它只是有助于简化工作,以便能够调用
lastObject
,而不是键入该函数

更新
正如@Nathaniel Symer在上面的评论中所建议的那样,
firstObject
以前是可用的,但只在私有API中可用(我相信是从iOS 4开始)。但是,在iOS 7 SDK发布时,
firstObject
现在已经公开提供

我想说的是同样的,最后一个对象实际上查询索引最高的对象,这就是为什么有一个方便的方法用于它。@0x7fffffff公平地说,它确实很好地平衡了
-lastObject
,所以在这种情况下它可能更可读。@Caleb
[array firstObject]之间有很大的区别
数组[0]
。第一个返回nil,第二个在数组为空时抛出异常。假设
firstObject
的工作原理与
lastObject
类似(我还没有读过文档)。根据文档,
firstObject
在iOS 4.0及更高版本中“可用”。@reecon&funroll:但在iOS 7 SDK之前它不在公共标题中。假设该方法确实存在,并且苹果没有针对较旧的操作系统版本进行私有方法检查,那么我猜将其添加到一个类别中是安全的(如果是针对较旧的SDK构建)。有人知道吗?甚至有一个博客:据我的一个朋友说,实际上有一个-[NSArray firstObject]很久了,它只是私有的。它也没有
-secondObject
-thirdObject