[NSArray]lastObjectとobjectAtIndex

NSArray型の変数で、“格納されている最後のオブジェクトを取得する”場合、
・[myArray lastObject]
・[myArray objectAtIndex:(NSUInteger)lastIndex]
の2つのやり方が、大体思い浮かびます。


lastIndexが信用できる(ようにちゃんとコーディングしている)なら、どちらでもいいでしょう。
むしろ、コードの流れからobjectAtIndexを使うのが必然のような気がする場合も多いように思います。
しかし、ちょっとした“安全性”という視点から眺めると、どうやらlastObjectを使った方が良さそうな・・・そんな気がします。

lastObjectはmyArrayの最後のオブジェクトを戻します。
もしmyArrayが空だったらどうなるのでしょう?
答えは「nilを戻す」です。

では、objectAtIndexを使った場合に、もし“存在しないindex”を渡しちゃったらどうなるでしょう?
答えは「クラッシュする」です。
正確に言えば「NSRangeExceptionが発生する」のですが、私はExceptionを制御の目的で使う思想には反対なので、Exceptionはクラッシュと同等だと思っています。

ここら辺はリファレンスに書いてあります。

さて、話題が変わりますが、「iPhoneアプリ開発の素晴らしい教材」を紹介しましょう。
ここ(リンク)をクリックして、右上の「Open Stanford on iTunes U」をクリックします。

iTunesが立ち上がり、多くのコンテンツが表示されます。
この中の
・Developing Apps for iOS(SD) (Fall 2010)
・iPad and iPhone Application Development(HD) (Fall2011)
・Coding Together:Developing Apps for iPhone and iPad(Winter 2013)
の3つのコンテンツを購読しましょう。

特に最後のコンテンツは「2013年3月20日」の授業です。こんな最新の授業を公開するなんて、素晴らしいの一言ですね。

ちなみに今回のネタは
「Coding Together:Developing Apps for iPhone and iPad(Winter 2013)」の「3.Objective-C(January 15,2013)」の「48分30秒あたり」で説明している内容です。

The following two tabs change content below.

ロゴスウェア

ロゴスウェア株式会社は、インターネットや情報技術を使って学習に革新的進化をもたらす製品を開発することを目標に、2001年7月に設立されたテクノロジー系ベンチャー企業です。

Comments are closed.