マーリンアームズ サポート   翻訳   コンサル   講座   アプリ   コラム
JavaScript講座     辞書サイト

入門 iOS SDK    Matt Neuburg著    武舎広幸+阿部和也+河村政雄訳

本の目次

訳者まえがき

まえがき

第1部 C言語とObjective-C言語

1章 Objective-C習得のためのC言語入門

1.1 コンパイル、文、コメント

コラム —— Xcodeのコンパイラ

1.2 データの型と変数

1.2.1 型と宣言

1.2.2 enum型

1.2.3 Cの文字列

1.3 構造体

1.4 ポインタ

1.4.1 ポインタの宣言

1.4.2 ポインタとObj-Cのオブジェクト

1.4.3 void*

1.5 配列

1.6 演算子

1.6.1 算術演算子

1.6.2 ビット単位の演算

1.6.3 代入

1.6.4 三項演算子

1.7 フロー制御と条件

1.7.1 if文とswitch文

1.7.2 ループとgoto文

1.7.3 条件の条件

1.8 関数

1.9 ポインタ引数とアドレス演算子

1.9.1 アドレス演算子

1.9.2 sizeof演算子

1.10 ソースファイルの構成

コラム —— Objective-Cの関数とメソッドの宣言

1.11 標準ライブラリ

1.12 その他のプリプロセッサディレクティブ

1.13 データ型の修飾子

2章 オブジェクト指向プログラミング

2.1 オブジェクト

2.2 メッセージとメソッド

2.3 クラスとインスタンス

2.4 クラスメソッド

2.5 インスタンス変数

2.6 オブジェクト指向の「哲学」

2.7 この章のまとめ

3章 Objective-Cのオブジェクトとメッセージ

3.1 オブジェクトの参照はポインタ

3.1.1 インスタンスの参照、初期化、nil

3.1.2 インスタンスの参照と代入

3.1.3 インスタンスの参照とメモリ管理

3.2 メッセージとメソッド

3.2.1 メソッドの呼び出し

3.2.2 メソッドの宣言

コラム —— クラスメソッドとインスタンスメソッドの区別

3.2.3 メソッド呼び出しの入れ子

3.2.4 オーバーロードの禁止

3.2.5 引数リスト

3.3 メッセージ送信のエラー

3.3.1 nilへのメッセージ送信

3.3.2 認識できないセレクタ

3.4 型変換とid型

3.5 データ型としてのメッセージ

3.6 C言語の関数

3.7 CFTypeRefs

3.8 ブロック

4章 Objective-Cのクラス

4.1 クラスとスーパークラス

4.2 インタフェース部と実装部

4.3 ヘッダファイルと実装ファイル

4.3.1 @class

4.3.2 ヘッダファイルにおける定数の定義

コラム —— Cocoa自身のヘッダファイル

4.4 クラスメソッドの利用

4.5 クラスの「一生」

コラム —— 名前空間

5章 Objective-Cのインスタンス

5.1 インスタンスの生成

5.1.1 レディーメードのインスタンス

5.1.2 ゼロから生成されるインスタンス

5.1.2.1 初期化

5.1.2.2 指定イニシャライザ

5.1.3 nibを用いて生成されるインスタンス

5.2 ポリモーフィズム(多態性)

5.3 self

5.4 super

5.5 インスタンス変数とアクセッサ

5.6 キー値コーディング

5.7 プロパティ

5.8 イニシャライザの書き方

コラム —— 二重インスタンス化の誤り

第2部 IDE

6章 Xcodeプロジェクト

6.1 新規プロジェクトの作成

6.2 プロジェクトウィンドウ

6.3 ナビゲータペイン

6.3.1 プロジェクトナビゲータ(⌘+1)

6.3.2 シンボルナビゲータ(⌘+2)

6.3.3 検索ナビゲータ(⌘+3)

6.3.4 イシューナビゲータ(⌘+4)

6.3.5 テストナビゲータ(⌘+5)

6.3.6 デバッグナビゲータ(⌘+6)

6.3.7 ブレークポイントナビゲータ(⌘+7)

6.3.8 ログナビゲータ(⌘+8)

6.4 ユーティリティペイン

6.4.1 ユーティリティペインの上側

6.4.2 ユーティリティペインの下側

6.5 エディタペイン

6.5.1 ジャンプバー

6.5.1.1 ジャンプバーの最下位レベル項目

6.5.1.2 ジャンプバーの上位レベル項目

6.5.1.3 ジャンプバーの関連項目

6.5.1.4 エディタペインの履歴

6.5.2 複数ファイルの同時表示やペインの分割

6.5.2.1 アシスタントペイン

6.5.2.2 タブ

6.5.2.3 補助ウィンドウ

6.5.2.4 ビヘイビアとの組み合わせ

6.6 プロジェクトを構成するファイル

6.6.1 ファインダ上のファイルとの対応

6.6.2 フレームワーク(Frameworks)

6.6.3 プロダクト(Products)

6.7 ターゲット

6.7.1 ビルドフェーズ(Build Phases)

6.7.2 ビルド設定(Build Setting)

6.7.3 構成

6.7.4 スキームとデスティネーション

6.7.5 名前の変更

6.8 プロジェクトからアプリへ

6.8.1 アプリバンドル(app bundle)

6.8.2 ビルド設定

6.8.3 プロパティリストファイル

6.8.4 nibファイル

6.8.5 その他のリソース

6.8.5.1 プロジェクトへのリソースの追加

6.8.5.2 画像リソースとアセットカタログ

6.8.6 コードとアプリの起動プロセスの関係

6.8.7 フレームワークとSDK

7章 nibファイル

7.1 nibエディタ

7.1.1 ドキュメントアウトライン

7.1.1.1 ドキュメントアウトライン——ストーリーボードを編集する場合

7.1.1.2 ドキュメントアウトライン——.xibを編集する場合

7.1.1.3 ドキュメントアウトラインの必要性

7.1.2 キャンバス

7.1.3 インスペクタとライブラリ

7.1.3.1 IDインスペクタ(⌘+option+3)

7.1.3.2 属性インスペクタ(⌘+option+4)

7.1.3.3 サイズインスペクタ(⌘+option+5)

7.1.3.4 nib編集に関係するライブラリ

7.2 nibのロード

7.2.1 ストーリーボードからビューコントローラがインスタンス化される場合

7.2.2 nibからのビューコントローラのメインビューをロードする場合

7.2.3 コードによるnibファイルのロード

7.3 アウトレットとnibのオーナー

7.4 アウトレットの作成

7.5 アウトレットの構成に関する注意

7.5.1 接続の削除

7.5.2 その他のアウトレットの作成方法

7.5.3 アウトレットコレクション

7.6 アクション接続

コラム —— nib間の接続

7.7 nibベースのインスタンスに関する追加的な初期化

8章 ドキュメント

8.1 ドキュメンテーションウィンドウ

8.2 クラスに関するドキュメント

8.3 サンプルコード

8.4 その他のリソース

8.4.1 クイックヘルプ

8.4.2 シンボル

8.4.3 ヘッダファイル

8.4.4 インターネット上のリソース

9章 開発の流れ

9.1 デバイスの選択

コラム —— 古いバージョンのシミュレータの利用

9.2 バージョン管理

9.3 コードの編集

9.3.1 自動補完

9.3.2 スニペット

9.3.3 ライブ構文チェックとFix-it

9.4 コードのナビゲート

9.4.1 ナビゲータペインとエディタペインを使った移動や表示

9.4.2 エディタレベル検索

9.4.3 Jump to Definition

9.4.4 Open Quickly

9.4.5 ブレークポイント

9.5 シミュレータでの実行

9.6 デバッグ

9.6.1 コンソールデバッグ

9.6.2 Xcodeデバッガ

9.7 クリーニング

9.8 ローカライズ

9.8.1 アプリ名のローカライズ

9.8.2 nibファイルのローカライズ

9.8.3 コード中の文字列のローカライズ

9.9 ユニットテスト

9.10 静的アナライザ

9.11 デバイスでの実行

9.12 デバイス管理

9.13 Instruments

9.14 配布

9.15 アドホック配布

9.16 最終的なアプリの準備

9.16.1 アプリのアイコン

9.16.2 その他のアイコン

9.16.3 起動画像

9.16.4 スクリーンショット

9.16.5 プロパティリストの設定

9.17 App Storeへの提出

第3部 Cocoa

10章 Cocoaのクラス

10.1 サブクラスの作成

10.2 カテゴリ

10.2.1 カテゴリの定義

10.2.2 カテゴリを使ったクラスの分割

10.2.3 クラスエクステンション

10.3 プロトコル

10.3.1 非形式プロトコル

10.4 オプションのメソッド

10.5 Foundationクラス

10.5.1 頻繁に使われる構造体と定数

10.5.2 NSStringと関連クラス

10.5.3 NSDateおよび関連クラス

10.5.4 NSNumber

10.5.5 NSValue

10.5.6 NSData

10.5.7 比較

10.5.8 NSIndexSet(インデックスセット)

10.5.9 NSArrayとNSMutableArray

10.5.10 NSSetと関連クラス

10.5.11 NSDictionaryとNSMutableDictionary

10.5.12 NSNull

10.5.13 イミュータブルとミュータブル

10.5.14 プロパティリスト

10.6 NSObject

11章 イベント

11.1 イベントの種類

11.2 サブクラス化

11.3 ノーティフィケーション(通知)

11.3.1 組み込みのノーティフィケーションの受信

11.3.2 登録解除

11.3.3 ノーティフィケーションのポスト

11.3.4 NSTimer

11.4 デリゲーション

11.4.1 Cocoaのデリゲーション

11.5 データソース

11.6 アクション

11.7 レスポンダチェーン

11.7.1 処理の先送り

11.7.2 nilターゲットのアクション

コラム —— 用語「First Responder」について

11.8 イベントに溺れる

11.9 遅延実行

11.10 アプリケーションのライフタイムイベント

12章 アクセッサとメモリ管理

12.1 アクセッサ

12.2 キー値コーディング(KVC)

12.2.1 KVCとアウトレット

12.2.2 キーパスと配列アクセッサ

12.3 メモリ管理

12.4 Cocoa流メモリ管理の原則

コラム —— メモリ管理の誤りのデバッグ

12.5 メモリ管理の黄金律

12.5.1 ARCの役割

12.5.2 Cocoaオブジェクトのメモリ管理

12.5.3 オートリリース(自動解放)

12.5.4 インスタンス変数のメモリ管理(ARC不使用の場合)

12.5.5 インスタンス変数のメモリ管理(ARC使用時)

12.5.6 循環保持と弱い参照

12.5.7 特殊なメモリ管理状況

12.5.8 nibの読み込みとメモリ管理

12.5.9 大域変数のメモリ管理

12.5.10 コンテキスト情報(void*型)のメモリ管理

12.5.11 CFTypeRefのメモリ管理

12.6 プロパティ

12.6.1 プロパティのメモリ管理方針

12.6.2 プロパティ宣言構文

12.6.3 プロパティのアクセッサの自動生成

12.6.4 動的アクセッサ

13章 オブジェクト間の通信

13.1 インスタンス化による可視性

13.2 関係による可視性

13.3 グローバルな可視性

13.4 ノーティフィケーション

13.5 キー値監視

13.6 モデル-ビュー-コントローラ


著者紹介

訳者紹介

表紙の説明