ariyasacca

カテゴリ一覧

Biz | SF | Software | tDiary | Web | ゲーム | サバティカル | スポーツ | ミステリ | メタル | 健康 | 投資 | 携帯 | 時事ネタ | 死生観 | 資格 | 雑記
2004|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2013-09-08 (日) [長年日記]

[雑記]『詳解 Objective-C 2.0 第3版』読み始めた

長かったAndroid系の開発プロジェクトも終わり、再びiOSアプリ開発の現場に戻ることになりそうです。

実はちゃんと書籍で知識を得ないままiOSアプリ開発をやり始めてApp Store配信まで進んでしまっていた事もあって、「一度ちゃんとした本を読んでおきたいなぁ」と考えていたので、 帯で「ARCに完全対応!」と銘打たれた『詳解 Objective-C 2.0 第3版』を読み始めました。前に読んでる途中で挫折した『iPhone 3Dプログラミング』は、どちらかと云うとOpen GLのシェーディングとC++が中心の本だったしね。

詳解 Objective-C 2.0 第3版(荻原 剛志)

Objective-C 2.0解説のガチ本

この本の凄いところはObjective-C 2.0解説のガチ本であるところでしょう。UIKitの解説はほぼ入れず、Objective-Cの言語仕様やFoundationフレームワークの「思想」レベルまで踏み込んで紹介しています。巻末には「思想」に従った命名の指針まで収録されているところも、お得感があり素晴らしいです。コードのコンパイルもXcodeを用いずにLLVMのclangで行う辺り、徹底しています。

また、第3版で改訂された内容も、ARC(Automatic Reference Counting)やGCD(Grand Central Dispatch)、Blocksと比較的モダンな内容に注力している点が魅力的です。特にiOSアプリでは、ググってみたが上位にヒットしたのはMRC(Manual Reference Counting)時代の記事ばかり……と云う経験も少なくありませんし、貴重で頼りになる資料だと言えるでしょう。

余談だけど、古い内容のプログラミング言語仕様に併せた入門記事がいつまでも検索結果上位に居座り続けるのは、Google先生にとって長いこと課題ですよね。

  • Javaのジェネリクス使ってない解説記事
    • Androidに限った話だとFragments使ってない時代の解説記事もそこら中で見掛けますね
  • PHPでクラス定義がPHP 4時代の解説記事
    • さすがに見る機会は減って来たか
    • けどtry-catch使ってない、__autoloadじゃなくてrequire_onceとか今でもざら
  • JavaScriptで未だにattachEventにも気を遣ってる解説記事
    • 時には必要ですが、もう無視したいよね
    • 同様にquerySelectorAll使わずにgetElementsByTagNameとか正直もう要らないよね……

C#だけは、日本においては、入門記事を書いている人の最新仕様へのキャッチアップが恐ろしく早いため、「ググっても外れを掴まされない」という稀有な状況がずっと保たれてます。C#使いてぇ…。

歯応えもありながら読み易い構成

さて、本書の内容に戻りますが、Smalltalkから受け継いだ「オブジェクト」「メッセージ」から始まり、クラス宣言へ繋がって行く読み易い構成になっています。前提知識としてはCかJavaを触ったことがあると、さくさく読めると思います。

Objective-Cの「詳解」を謳うだけあって、なかなか使いこなせてない機能の気付きも多くあって、良い感じです。クラス名の前方宣言(@class)でヘッダファイルのimportを省略したりとか、意識して使ってみると便利そうです。

あと(一般的なJavaなどで言うところの)ファクトリメソッドでも、返す型を決め打ちせずにNSObjectのclassメソッドを使う工夫も、「なるほどなー」という感じです。実行時の動的バインディング + 静的な型チェック機構を持つObjective-Cならではの、サブクラスへの配慮と言えそう。

// これを返すとVolumeに固定されてしまう
[[Volume alloc] initWithMin:a max:b step:s];

// Volumeのサブクラス側でオーバーライドしなくてもうまく動く
[[[self class] alloc] initWithMin:a max:b step:s];

最近のツッコミ

  1. ともお (2024-05-29(水)20:59)「真上からの恐怖🫨」
  2. いちごみるく (2024-05-29(水)20:59)「🩸」
  3. レモン (2024-05-29(水)20:59)「レモン」

参号館  の中の  日記(ariyasacca)

トップ «前の日記(2013-08-31 (土)) 最新 次の日記(2013-09-12 (木))» 編集