內容簡介
Objective-C 語言,以其高效性和安全性的特點在蘋果作業系統中經久不衰。
本書由淺入深,全面、系統地介紹了Objective-C開發技術。從Objective-C 的基礎開始說明,一改程式設計書只有枯燥乏味的文字講解,採用圖片說明,將傳統的文字說明轉為各種形式的圖形圖表,提升讀者的閱讀興趣,讓讀者在潛移默化中掌握Objective-C語言的開發精髓,輕鬆地掌握學習內容。
適合:Objective-C 初學者、使用Objective-C語言進行開發的工程技術人員。對經常使用Objective-C語言進行開發的人員,更是一本必備參考書。
本書由淺入深,全面、系統地介紹了Objective-C開發技術。從Objective-C 的基礎開始說明,一改程式設計書只有枯燥乏味的文字講解,採用圖片說明,將傳統的文字說明轉為各種形式的圖形圖表,提升讀者的閱讀興趣,讓讀者在潛移默化中掌握Objective-C語言的開發精髓,輕鬆地掌握學習內容。
適合:Objective-C 初學者、使用Objective-C語言進行開發的工程技術人員。對經常使用Objective-C語言進行開發的人員,更是一本必備參考書。
內容目錄
前言
第1 篇基礎篇
Chapter 01 第一個Objective-C 程式
1.1 Objective-C 開發概述
1.1.1 Objective-C 的發展史
1.1.2 Objective-C 的特點
1.1.3 開發環境(Software Development Environment,SDE)
1.2 "Hello World!" 程式
1.2.1 建立Hello Objective-C 專案
1.2.2 編譯、連結及執行
1.3 Objective-C 程式認識
1.3.1 檢視原始檔案
1.3.2 Objective-C 程式的結構
1.3.3 註釋
1.3.4 識別符號
1.4 小結
1.5 習題
Chapter 02 資料類型
2.1 數值
2.1.1 二進位
2.1.2 十進位
2.1.3 八進位
2.1.4 十六進位
2.1.5 各進位之間的轉換
2.2 資料類型
2.2.1 整數類型
2.2.2 實類型資料
2.2.3 字元
2.2.4 資料類型的輸出
2.2.5 Objective-C 特有的資料類型
2.3 變數和常數
2.3.1 變數
2.3.2 常數
2.4 小結
2.5 習題
Chapter 03 敘述
3.1 敘述的組成
3.2 運算子及運算式
3.2.1 算術運算子及運算式
3.2.2 自動增加自減運算子
3.2.3 位元運算符號
3.2.4 設定運算子及運算式
3.2.5 關係運算子及運算式
3.2.6 條件運算子
3.2.7 布林邏輯運算子及運算式
3.2.8 逗點運算子及運算式
3.2.9 求位元組數運算子
3.2.10 特殊的運算子
3.2.11 運算子的優先順序
3.3 類型轉換
3.3.1 自動轉換
3.3.2 強制類型轉換
3.4 敘述區塊
3.4.1 敘述區塊的結構
3.4.2 作用域
3.5 小結
3.6 習題
Chapter 04 程式控制結構
4.1 順序結構
4.2 選擇結構
4.2.1 條件陳述式的組成
4.2.2 if 敘述
4.2.3 if...else 敘述
4.2.4 if...else...if 敘述
4.2.5 三種if 敘述的注意事項
4.2.6 if 敘述的巢狀結構
4.2.7 switch 敘述
4.3 循環結構
4.3.1 while 敘述
4.3.2 for 敘述
4.3.3 do...while 敘述
4.3.4 三種循環敘述的比較
4.4 轉折敘述
4.4.1 break 敘述
4.4.2 continue
4.4.3 break 和continue 的比較
4.4.4 return 敘述
4.5 小結
4.6 習題
Chapter 05 函數
5.1 函數簡介
5.2 函數的使用
5.2.1 函數的宣告
5.2.2 函數的定義和呼叫
5.2.3 函數使用中的問題
5.2.4 空函數
5.3 函數的參數
5.3.1 參數
5.3.2 有參函數的定義和呼叫
5.3.3 參數的注意事項
5.3.4 函數的傳遞方式
5.4 函數的傳回值
5.4.1 傳回某一資料類型的值
5.4.2 無傳回值
5.5 函數的巢狀結構和遞迴
5.5.1 函數的巢狀結構
5.5.2 函數的遞迴
5.6 小結
5.7 習題
第2篇 Objective-C 物件導向篇
Chapter 06 物件導向程式設計
6.1 類別和物件
6.1.1 類別的宣告和定義
6.1.2 產生實體物件
6.2 執行個體變數
6.2.1 執行個體變數的定義
6.2.2 執行個體變數的使用
6.2.3 執行個體變數、全域變數和區域變數的區別
6.2.4 變數的儲存類別
6.3 方法
6.3.1 方法的宣告
6.3.2 方法的實現
6.3.3 物件方法的使用
6.3.4 類別方法的使用
6.3.5 方法的參數
6.4 屬性
6.4.1 屬性的宣告和定義
6.4.2 帶參屬性
6.4.3 帶參屬性—setter/getter 方法(assign/retain/copy)
6.4.4 帶參屬性——讀寫屬性
6.4.5 帶參屬性——最小修飾
6.5 小結
6.6 習題
Chapter 07 深入物件導向的程式設計
7.1 繼承
7.1.1 繼承的實現
7.1.2 執行個體變數的繼承
7.1.3 方法的繼承
7.2 存取限定詞
7.2.1 @public
7.2.2 @protected
7.2.3 @private
7.2.4 存取限定詞的區別
7.3 方法重新定義
7.3.1 方法重新定義的形式
7.3.2 super
7.4 方法多載
7.5 多層繼承
7.6 多形
7.6.1 多形的形式
7.6.2 方法的重新定義實現多形
7.6.3 方法的多載實現多形
7.7 動態類型和動態繫結
7.7.1 動態類型id
7.7.2 動態繫結
7.8 小結
7.9 習題
Chapter 08 分類和協定
8.1 分類
8.1.1 分類的宣告
8.1.2 分類的定義
8.1.3 分類的使用
8.1.4 分類的建立
8.1.5 分類使用的注意點
8.2 協定
8.2.1 協定的定義
8.2.2 協定的建立
8.2.3 協定在類別中的宣告
8.2.4 所用協定宣告方法
8.2.5 關鍵字
8.2.6 多個協定的使用
8.2.7 在協定中使用協定
8.2.8 判斷協定實現的方法
8.2.9 協定的分類
8.3 小結
8.4 習題
第3篇 Objective-C 技術篇
Chapter 09 記憶體管理
9.1 記憶體管理的基礎
9.1.1 申請記憶體(alloc)
9.1.2 釋放記憶體(dealloc)
9.2 參考計數
9.2.1 參考計數和字串
9.2.2 參考計數和執行個體變數
9.3 自動釋放池
9.3.1 自動釋放池
9.3.2 建立多個自動釋放池
9.3.3 參考計數和自動釋放池
9.4 記憶體管理規則及記憶體洩漏
9.4.1 記憶體管理規則
9.4.2 記憶體洩漏
9.5 垃圾回收
9.6 小結
9.7 習題
Chapter 10 Foundation 架構的基本物件
10.1 數字物件
10.1.1 數字物件的介紹
10.1.2 數字物件的使用
10.2 字串物件
10.2.1 字串和字元的區別
10.2.2 不可修改的字串
10.3 陣列物件
10.3.1 陣列的定義
10.3.2 陣列的宣告
10.3.3 陣列的參考
10.3.4 二維陣列的宣告和定義
10.3.5 二維陣列初始化的方法
10.3.6 二維陣列的參考
10.3.7 字元陣列的含義
10.3.8 字元陣列初始化
10.3.9 字元陣列的參考
10.3.10 不可修改的陣列
10.3.11 可修改的陣列
10.4 字典物件
10.4.1 不可修改的字典
10.4.2 可修改的字典
10.5 集合物件
10.5.1 不可修改的集合
10.5.2 可修改的集合
10.6 小結
10.7 習題
Chapter 11 檔案和目錄處理
11.1 檔案的操作
11.1.1 建立檔案
11.1.2 檔案的使用
11.1.3 對檔案資料的操作
11.1.4 檔案的讀寫
11.2 目錄的操作
11.2.1 目錄的基本操作方法
11.2.2 目錄的顯示
11.2.3 臨時目錄
11.2.4 路徑
11.3 小結
11.4 習題
Chapter 12 編譯前置處理
12.1 巨集定義
12.1.1 不帶參巨集定義
12.1.2 帶參巨集
12.1.3 使用巨集的注意點
12.1.4 巨集的取消
12.2 標頭檔案
12.3 條件編譯
12.3.1 #ifdef
12.3.2 #ifndef
12.3.3 #if
12.3.4 編譯前置處理歸納
12.4 小結
12.5 習題
Chapter 13 處理程序和執行緒
13.1 處理程序
13.1.1 建立處理程序2
13.1.2 處理程序的使用
13.1.3 處理程序方法歸納
13.2 執行緒
13.2.1 使用NSThread 建立執行緒
13.2.2 啟動執行緒
13.2.3 存取主執行緒
13.3 互斥鎖
13.3.1 NSLock
13.3.2 @synchronized
13.4 處理程序和執行緒的區別
13.5 小結
13.6 習題
Chapter14 歸檔
14.1 XML 屬性清單
14.1.1 使用XML 進行資料儲存
14.1.2 使用XML 進行資料讀取
14.2 NSKeyedArchiver
14.2.1 NSKeyedArchive 的資料儲存
14.2.2 NSKeyedArchive 的資料讀取
14.3 編碼和解碼方法
14.3.1 直接進行歸檔
14.3.2 編碼方法
14.3.3 解碼方法
14.4 儲存多個物件到一個檔案
14.5 使用歸檔程式複製物件
14.6 小結
14.7 習題
Chapter15 錯誤處理
15.1 錯誤的分類
15.2 使用傳回值
15.3 使用例外處理
15.3.1 例外處理的使用
15.3.2 捕捉不同類型的例外
15.3.3 使用例外的注意點
15.3.4 拋出例外
15.4 使用NSError
15.5 小結
15.6 習題
Chapter16 時間日期處理
16.1 NSDate
16.1.1 建立NSDate
16.1.2 取得目前的日期
16.1.3 取得昨天的日期
第1 篇基礎篇
Chapter 01 第一個Objective-C 程式
1.1 Objective-C 開發概述
1.1.1 Objective-C 的發展史
1.1.2 Objective-C 的特點
1.1.3 開發環境(Software Development Environment,SDE)
1.2 "Hello World!" 程式
1.2.1 建立Hello Objective-C 專案
1.2.2 編譯、連結及執行
1.3 Objective-C 程式認識
1.3.1 檢視原始檔案
1.3.2 Objective-C 程式的結構
1.3.3 註釋
1.3.4 識別符號
1.4 小結
1.5 習題
Chapter 02 資料類型
2.1 數值
2.1.1 二進位
2.1.2 十進位
2.1.3 八進位
2.1.4 十六進位
2.1.5 各進位之間的轉換
2.2 資料類型
2.2.1 整數類型
2.2.2 實類型資料
2.2.3 字元
2.2.4 資料類型的輸出
2.2.5 Objective-C 特有的資料類型
2.3 變數和常數
2.3.1 變數
2.3.2 常數
2.4 小結
2.5 習題
Chapter 03 敘述
3.1 敘述的組成
3.2 運算子及運算式
3.2.1 算術運算子及運算式
3.2.2 自動增加自減運算子
3.2.3 位元運算符號
3.2.4 設定運算子及運算式
3.2.5 關係運算子及運算式
3.2.6 條件運算子
3.2.7 布林邏輯運算子及運算式
3.2.8 逗點運算子及運算式
3.2.9 求位元組數運算子
3.2.10 特殊的運算子
3.2.11 運算子的優先順序
3.3 類型轉換
3.3.1 自動轉換
3.3.2 強制類型轉換
3.4 敘述區塊
3.4.1 敘述區塊的結構
3.4.2 作用域
3.5 小結
3.6 習題
Chapter 04 程式控制結構
4.1 順序結構
4.2 選擇結構
4.2.1 條件陳述式的組成
4.2.2 if 敘述
4.2.3 if...else 敘述
4.2.4 if...else...if 敘述
4.2.5 三種if 敘述的注意事項
4.2.6 if 敘述的巢狀結構
4.2.7 switch 敘述
4.3 循環結構
4.3.1 while 敘述
4.3.2 for 敘述
4.3.3 do...while 敘述
4.3.4 三種循環敘述的比較
4.4 轉折敘述
4.4.1 break 敘述
4.4.2 continue
4.4.3 break 和continue 的比較
4.4.4 return 敘述
4.5 小結
4.6 習題
Chapter 05 函數
5.1 函數簡介
5.2 函數的使用
5.2.1 函數的宣告
5.2.2 函數的定義和呼叫
5.2.3 函數使用中的問題
5.2.4 空函數
5.3 函數的參數
5.3.1 參數
5.3.2 有參函數的定義和呼叫
5.3.3 參數的注意事項
5.3.4 函數的傳遞方式
5.4 函數的傳回值
5.4.1 傳回某一資料類型的值
5.4.2 無傳回值
5.5 函數的巢狀結構和遞迴
5.5.1 函數的巢狀結構
5.5.2 函數的遞迴
5.6 小結
5.7 習題
第2篇 Objective-C 物件導向篇
Chapter 06 物件導向程式設計
6.1 類別和物件
6.1.1 類別的宣告和定義
6.1.2 產生實體物件
6.2 執行個體變數
6.2.1 執行個體變數的定義
6.2.2 執行個體變數的使用
6.2.3 執行個體變數、全域變數和區域變數的區別
6.2.4 變數的儲存類別
6.3 方法
6.3.1 方法的宣告
6.3.2 方法的實現
6.3.3 物件方法的使用
6.3.4 類別方法的使用
6.3.5 方法的參數
6.4 屬性
6.4.1 屬性的宣告和定義
6.4.2 帶參屬性
6.4.3 帶參屬性—setter/getter 方法(assign/retain/copy)
6.4.4 帶參屬性——讀寫屬性
6.4.5 帶參屬性——最小修飾
6.5 小結
6.6 習題
Chapter 07 深入物件導向的程式設計
7.1 繼承
7.1.1 繼承的實現
7.1.2 執行個體變數的繼承
7.1.3 方法的繼承
7.2 存取限定詞
7.2.1 @public
7.2.2 @protected
7.2.3 @private
7.2.4 存取限定詞的區別
7.3 方法重新定義
7.3.1 方法重新定義的形式
7.3.2 super
7.4 方法多載
7.5 多層繼承
7.6 多形
7.6.1 多形的形式
7.6.2 方法的重新定義實現多形
7.6.3 方法的多載實現多形
7.7 動態類型和動態繫結
7.7.1 動態類型id
7.7.2 動態繫結
7.8 小結
7.9 習題
Chapter 08 分類和協定
8.1 分類
8.1.1 分類的宣告
8.1.2 分類的定義
8.1.3 分類的使用
8.1.4 分類的建立
8.1.5 分類使用的注意點
8.2 協定
8.2.1 協定的定義
8.2.2 協定的建立
8.2.3 協定在類別中的宣告
8.2.4 所用協定宣告方法
8.2.5 關鍵字
8.2.6 多個協定的使用
8.2.7 在協定中使用協定
8.2.8 判斷協定實現的方法
8.2.9 協定的分類
8.3 小結
8.4 習題
第3篇 Objective-C 技術篇
Chapter 09 記憶體管理
9.1 記憶體管理的基礎
9.1.1 申請記憶體(alloc)
9.1.2 釋放記憶體(dealloc)
9.2 參考計數
9.2.1 參考計數和字串
9.2.2 參考計數和執行個體變數
9.3 自動釋放池
9.3.1 自動釋放池
9.3.2 建立多個自動釋放池
9.3.3 參考計數和自動釋放池
9.4 記憶體管理規則及記憶體洩漏
9.4.1 記憶體管理規則
9.4.2 記憶體洩漏
9.5 垃圾回收
9.6 小結
9.7 習題
Chapter 10 Foundation 架構的基本物件
10.1 數字物件
10.1.1 數字物件的介紹
10.1.2 數字物件的使用
10.2 字串物件
10.2.1 字串和字元的區別
10.2.2 不可修改的字串
10.3 陣列物件
10.3.1 陣列的定義
10.3.2 陣列的宣告
10.3.3 陣列的參考
10.3.4 二維陣列的宣告和定義
10.3.5 二維陣列初始化的方法
10.3.6 二維陣列的參考
10.3.7 字元陣列的含義
10.3.8 字元陣列初始化
10.3.9 字元陣列的參考
10.3.10 不可修改的陣列
10.3.11 可修改的陣列
10.4 字典物件
10.4.1 不可修改的字典
10.4.2 可修改的字典
10.5 集合物件
10.5.1 不可修改的集合
10.5.2 可修改的集合
10.6 小結
10.7 習題
Chapter 11 檔案和目錄處理
11.1 檔案的操作
11.1.1 建立檔案
11.1.2 檔案的使用
11.1.3 對檔案資料的操作
11.1.4 檔案的讀寫
11.2 目錄的操作
11.2.1 目錄的基本操作方法
11.2.2 目錄的顯示
11.2.3 臨時目錄
11.2.4 路徑
11.3 小結
11.4 習題
Chapter 12 編譯前置處理
12.1 巨集定義
12.1.1 不帶參巨集定義
12.1.2 帶參巨集
12.1.3 使用巨集的注意點
12.1.4 巨集的取消
12.2 標頭檔案
12.3 條件編譯
12.3.1 #ifdef
12.3.2 #ifndef
12.3.3 #if
12.3.4 編譯前置處理歸納
12.4 小結
12.5 習題
Chapter 13 處理程序和執行緒
13.1 處理程序
13.1.1 建立處理程序2
13.1.2 處理程序的使用
13.1.3 處理程序方法歸納
13.2 執行緒
13.2.1 使用NSThread 建立執行緒
13.2.2 啟動執行緒
13.2.3 存取主執行緒
13.3 互斥鎖
13.3.1 NSLock
13.3.2 @synchronized
13.4 處理程序和執行緒的區別
13.5 小結
13.6 習題
Chapter14 歸檔
14.1 XML 屬性清單
14.1.1 使用XML 進行資料儲存
14.1.2 使用XML 進行資料讀取
14.2 NSKeyedArchiver
14.2.1 NSKeyedArchive 的資料儲存
14.2.2 NSKeyedArchive 的資料讀取
14.3 編碼和解碼方法
14.3.1 直接進行歸檔
14.3.2 編碼方法
14.3.3 解碼方法
14.4 儲存多個物件到一個檔案
14.5 使用歸檔程式複製物件
14.6 小結
14.7 習題
Chapter15 錯誤處理
15.1 錯誤的分類
15.2 使用傳回值
15.3 使用例外處理
15.3.1 例外處理的使用
15.3.2 捕捉不同類型的例外
15.3.3 使用例外的注意點
15.3.4 拋出例外
15.4 使用NSError
15.5 小結
15.6 習題
Chapter16 時間日期處理
16.1 NSDate
16.1.1 建立NSDate
16.1.2 取得目前的日期
16.1.3 取得昨天的日期