【勉強】Objective-Cプログラミング言語(その4/最終回)+おすすめの本
前回に引き続き、アップル純正の「Objective-Cプログラミング言語」を使った勉強です。
http://developer.apple.com/jp/devcenter/ios/library/documentation/ObjC.pdf
目次は以下です(再掲)。
序 章 はじめに
第 1章 オブジェクト、クラス、メッセージ
第 2章 クラスの定義
第 3章 オブジェクトの割り当てと初期化
第 4章 プロトコル
第 5章 宣言済みプロパティ
第 6章 カテゴリと拡張
第 7章 関連参照
第 8章 高速列挙
第 9章 静的な動作の実現
第10章 セレクタ
第11章 例外処理
第12章 スレッド化
今回はより概念的な話が中心でした。
「第 6章 カテゴリと拡張」と「第 7章 関連参照」はよく理解できませんでした。
今後の課題とすることにします。
高速列挙の使用(98ページより)
明確な順序を持つコレクションや列挙子(配列から派生したNSArrayインスタンスやNSEnumeratorインスタンス)の場合、列挙はその順序に従って行われるため、必要な場合は反復をカウントするだけでコレクション内を指す正しいインデックスが得られます。
これは意外でした。
てぃーがよく使うVisual Basic、Visual C#でも同様の機能はあります。
しかし、これらの場合処理の順は指定した順に必ずしもなるわけでないので、順に処理したい場合や処理の回数とインデックスを絡めて処理したい場合には不向きでした。
そのため、Objective-Cでも同様と思いんでしまい、iPhoneアプリ開発では高速列挙は使っていませんでした。
もったいないことをしていたと思います。。。
高速列挙の方が早いだけでなく、コードの記述も楽ですからね。
いちいちインデックス用の変数を設定してインクリメントを書かなくていいんですから。
2012/11/18 追記 ------
他の言語とともにまとめました。
→Objective-CとPHPの高速列挙(foreach文)は順番(参照順序)が保証されるは順番(参照順序)が保証される
--------------------------
「第 9章 静的な動作の実現」についてはそうなのかという感じでした。
こういう概念は学問的にはおもしろいでしょうし、コンパイラの開発をするような場合は重要でしょう。
でも一般の開発者がこのようなややこしいコードを書く必要はないですね。
興味があれば知っておくという認識で今のところはいいと思いました。
例外処理(109ページより)
Objective-Cの例外サポートとしては、@try、@catch、@throw、@finallyの4つのコンパイラディレクティブがあります。
(途中省略)
@try {
[cup fill];
}
@catch (NSException *exception) {
[NSLog(@"main:Caught %@:%@", [exception name], [exception reason]);
}
@finally {
[[cup release];
}
オブジェクト指向の言語にはふつう付いている例外処理ですね。
Visual Basicではtryの終わりがfinallyの後なのですが、Objective-Cではcatchの前に来ます。
ちょっとややこしいですね。勉強あるのみです。
例外のスロー(111ページより)
重要: 多くの環境で、例外の使用はかなり一般的です。たとえば、ルーチンが正常に実行できない(ファイルが見つからない、データが正しく解析できないなど)ことを表すために例外をスローできます。例外は、Objective-Cではリソースをかなり消費します。一般的なフロー制御や単にエラーを示すために例外を使用するべきではありません。代わりに、メソッドや関数の戻り値を使用してエラーが発生したことを示し、エラーオブジェクトで問題に関する情報を提供すべきです。詳細については、『Error Handling Programming Guide』を参照してください。
要するにエラー処理をふつうの分岐処理として扱わないようにということでしょうね。
てぃーはプログラム開発ではデバック時にブレイクポイントをcatchに置いて流れを止めることが多いです。
Objective-Cに限らずどの言語でもエラーがどこで出たのかを辿るのが難しいですから。
エラー処理はデバッグ時や、どうしようもないエラーの時にデータを保護する時に威力を発揮しますね。
以上、いろいろと勉強になりました。
やはりこの「Objective-Cプログラミング言語」は概念の話なのでこれを読んだだけでは実用方面には行けません。
実例を踏まえた解説本が必要となります。
前回も紹介したようにObjective-Cの本は増えているので購入するのがいいですね。
・「XcodeによるObjective-C入門」
・「詳解 Objective-C 2.0 改訂版」
・「世界一わかりやすいObjective‐Cプログラミングの授業」
勉強方法としては、楽しめる順に学びましょう。
1.難しいことは知らなくてもiPhoneアプリが作れる本
・「よくわかるiPhoneアプリ開発の教科書」
・「iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩」など
↓
2.ある程度分かってきたらObjective-CやiPhoneSDKに関する本
・上にあげた本
・「iOSデバッグ&最適化技法 for iPad/iPhone」など
↓
3.Core Audio、OpenGLなどを絡めた本
・「実践iPad/iPhoneゲームプログラミング 」
・「iOSで作るシューティングゲーム」
・「OpenGLで作るiPhone SDKゲームプログラミング」
・「iPhone Core Audioプログラミング」など
という感じで進めるのがいいでしょうね。難しいことは後回しにしてまずは手を動かして行きましょう。
2011/08/15 追記
おすすめの参考書を更新してみました。参考にしてくださいね。
→こちら
↓この記事が参考になったら拍手をクリックお願いします。今後のブログ作りに役立てたいので。
- 関連記事
-
- 【勉強】Objective-Cプログラミング言語(その4/最終回)+おすすめの本 (2011/05/31)
- 【勉強】Objective-Cプログラミング言語(その3) (2011/05/27)
- 【勉強】Objective-Cプログラミング言語(その2) (2011/05/26)
- 【勉強】Objective-Cプログラミング言語(その1) (2011/05/25)