[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.

谷中

システム開発チームと検証チームのマネージャー。 「疎結合 小さなクラス 分業制」 を裏スローガンとし、これが実現できてこそ、幸せな開発者人生を過ごせるという確信のもと、上流から設計まで口を挟んだり挟まなかったりしています。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>