【勉強】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 追記
おすすめの参考書を更新してみました。参考にしてくださいね。
 →こちら


↓この記事が参考になったら拍手をクリックお願いします。今後のブログ作りに役立てたいので。
関連記事

コメントの投稿

非公開コメント

プロフィール

てぃー

Author:てぃー
詳しい自己紹介:こちら
Twitter:@teapipin


follow us in feedly 
にほんブログ村 IT技術ブログへ にほんブログ村 PC家電ブログへ
現在の閲覧者数:

ブログ内検索
今日のアクセス数の多い記事
カレンダー

06月 | 2017年07月 | 08月
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
過去記事ダイジェスト
お知らせ

ツイッター分析の分析結果が和歌山大学防災研究教育センターの論文に引用
防災の研究において評価!

2015年版ツイッター分析(世界編)が始動!
今回は世界の国別・言語別ツイートを分析!

ツイッター分析の分析結果が慶應義塾大学有名教授の研究論文などに引用
文系の研究までも制覇!

Interval Timer EX
有名雑誌「Mac Fan 2015月2月号」に「インターバルタイマーEX」が3度目の掲載!!ポモドーロテクニックに有効!

自作Macアプリ3部作が2014年 Vector 年間ダウンロードランキング Mac トップ100にすべてランクイン

TimeCalcを公開しています!
時間計算、年齢計算、学歴欄作成など。

ツイッター分析の分析結果が人工知能の研究に!
ブログが学会発表で引用されました。

今まで開発したiPhoneアプリのソースコードを公開しています!
勉強に役立ててください。


2013年 Vector 年間ダウンロードランキング Mac トップ100に「デジカメ変更日を撮影日に一括変更 for Mac」と「インターバルタイマーEX」がランクイン

Interval Timer EX
有名雑誌「Mac Fan 2013月4月号」に「インターバルタイマーEX」が2度目の掲載!!

リアルタイムツイッター地図
リアルタイムツイッター地図を公開しています!
位置情報付きツイートをリアルタイムに表示します。

新たなツイッター分析としてイベントツイート分析を行っています!

2012年8月1日(水)開催の「Twitter勉強会」で発表
ツイッター調査:約173万ツイートを調査して分かったTwitterの利用動向 #twtr_hack from teapipin


Interval Timer EX
有名雑誌「Mac Fan 2012月3月号」に「インターバルタイマーEX」が掲載!!



 

はてなブックマークの人気記事
ツイート&いいね!ランキング