2012-10-25 8 views
13

しかし、それはlastObjectを持っています、誰も知っている理由は?なぜNSArrayにfirstObjectメソッドがないのですか?

+0

ブログ: http://troybrant.net/blog/2010/02/adding-firstobject-to-nsarray/ – zchenah

+3

私の仲間の1人によると、実際には[NSArray firstObject]があります長い間、それはちょうど私的であった。 –

+2

'-secondObject'や' -thirdObject'もありません。 – Caleb

答えて

19

私の推測は、lastObjectが定型コードを減らすためです。現代のObjective-C構文を使用して[array objectAtIndex:array.count - 1]またはarray[array.count - 1]を置き換えるには、[array lastObject]を使用します。

firstObjectの場合は、[array objectAtIndex:0]またはarray[0]をチェックするだけです。 これは、その機能をタイプアウトする代わりにlastObjectに電話をかけることを合理化するのに役立ちます。

更新

@Nathaniel Symerは、上記の彼のコメントで示唆したように、firstObjectは、以前に利用されているだけのプライベートAPIに(私は、iOS 4以降と考えています)。ただし、iOS 7 SDKのリリース時点で、firstObjectが公開されました。

+1

私は同じ考えを述べようとしていました。最後のオブジェクトは最も高いインデックスを持つオブジェクトを実際に照会します。そのため、便利なメソッドがあります。 – Pochi

+0

ありがとうございます。それは非常に可能です。 [myArray objectAtIndex:0]と[myArray lastObject]の両方を使用すると、ちょっとした不均衡が感じられます。 – zchenah

+0

@NSPostWhenIdle確かに私は:) :)しかし、他のアイデアがあるかどうかを私が一瞬待つことを許可します。 – zchenah

関連する問題