內容簡介
Objective-C是擴展C的
面向對象程式語言,也是iPhone開發用到的主要語言。本書結合理論知識與示例程式,全面而系統地講述Objective-C編程的相關內容,包括Objective-C在C的基礎上引入的特性和
Cocoa工具包的功能及其中的框架,以及
繼承、複合、源檔案組織等眾多重要的面向對象編程技術。附錄中還介紹了如何從其他語言過渡到Objective-C。本書適合各類開發人員閱讀。
作者簡介
達爾林普爾,有多年從業經驗的Mac和Unix程式設計師,致力於跨平台開發工具包、網際網路發布工具、高性能Web服務和終端用戶桌面套用等方面的工作。他還與人合著過 Core Mac OS X and Unix Programming和Advanced Mac OS X Programming。
圖書目錄
第1章 啟程.1
1.1 預備知識1
1.2 歷史背景1
1.3 內容簡介2
1.4 小結3
第2章 對C的擴展4
2.2 解構HelloObjective-C程式7
2.2.1 #import7
2.2.2 NSLog()和@"字元串"8
2.3.1 BOOL強大的實用功能11
2.3.2 比較13
2.4 小結14
3.1 間接15
3.1.1 變數與間接16
3.1.2 使用檔案名稱的間接18
3.2.1 過程式編程24
3.2.2 實現面向對象編程29
3.3 學習有關的術語33
3.4.1 @interface部分34
3.4.3 實例化對象40
3.4.4 擴展Shapes-Object41
3.5 小結43
第4章 繼承45
4.1 為何使用繼承45
4.2 繼承語法48
4.3 繼承的工作機制51
4.3.1 方法調度51
4.4 重寫方法55
4.5 小結57
第5章 複合58
5.1 什麼是複合58
5.1.1 Car程式58
5.2 存取方法62
5.2.1 設定發動機的屬性64
5.2.2 設定輪胎的屬性64
5.2.3 跟蹤汽車的變化66
5.3 擴展CarParts程式67
5.4 複合還是繼承68
5.5 小結69
第6章 源檔案組織70
6.1 拆分接口和實現部分70
6.2 拆分Car程式73
6.3 使用跨檔案依賴關係75
6.3.1 重新編譯須知75
6.3.2 讓汽車開動77
6.3.3 導入和繼承79
6.4 小結80
第7章 深入了解Xcode82
7.1 改變公司名稱82
7.2 使用編輯器的技巧與訣竅83
7.3.2 代碼自動完成85
7.3.4 批量編輯88
7.3.5 代碼導航91
7.3.6 emacs不是Mac程式91
7.3.7 任意搜尋92
7.3.8 芝麻開門93
7.3.9 書籤93
7.3.10 集中注意力94
7.3.11 開啟導航條95
7.4 獲取信息98
7.4.1 研究助手98
7.4.2 文檔管理程式99
7.5 調試100
7.5.1 暴力調試100
7.5.2 Xcode的調試器100
7.5.3 精巧的調試符號101
7.5.4 開始調試101
7.5.5 檢查程式104
7.5 備忘表105
7.6 小結106
第8章 FoundationKit快速教程107
8.1 一些有用的數據類型108
8.1.1 範圍的作用108
8.1.2 幾何數據類型108
8.2 字元串109
8.2.1 創建字元串109
8.2.2 類方法109
8.2.3 關於大小110
8.2.4 比較的策略110
8.2.5 不區分大小寫的比較112
8.2.6 字元串內是否還包含別的字元串..112
8.3 可變性113
8.4 集合家族115
8.4.1 NSArray115
8.4.2 可變數組118
8.4.3 枚舉“王國”119
8.4.4 快速枚舉120
8.4.5 NSDictionary120
8.4.6 使用,但不要擴展122
8.5 各種數值122
8.5.1 NSNumber122
8.5.2 NSValue123
8.5.3 NSNull124
8.6 示例:查找檔案124
8.7 小結128
9.1 對象生命周期129
9.1.2 對象所有權132
9.1.3 訪問方法中的保留和釋放133
9.2 自動釋放134
9.2.1 所有對象全部入池135
9.2.2 自動釋放池的銷毀時間135
9.2.3 自動釋放池的工作過程136
9.3 Cocoa記憶體管理規則138
9.3.1 臨時對象138
9.3.2 擁有對象139
9.3.3 垃圾回收141
9.4 小結142
第10章 對象初始化143
10.1 分配對象143
10.2 初始化對象143
10.2.1 編寫初始化方法144
10.2.2 初始化時做什麼146
10.3 便利初始化函式146
10.4 更多部件改進147
10.4.1 Tire類的初始化147
10.4.2 更新main()函式149
10.4.3 清理Car類152
10.5 支持垃圾回收風格的Car類清理155
10.6 指定初始化函式156
10.6.2 改進Tire類的初始化函式159
10.6.3 添加AllWeatherRadial類的初始化函式160
10.7 初始化函式規則160
10.8 小結161
第11章 特性162
11.1 修改特性值162
11.1.1 簡化接口163
11.1.2 簡化實現164
11.1.3 點表達式的妙用166
11.2 特性擴展167
11.2.1 名稱的使用171
11.2.2 唯讀特性172
11.2.3 特性不是萬能的173
11.3 小結173
第12章 類別175
12.1 創建類別175
12.1.1 聲明類別175
12.1.2 實現類別176
12.1.3 類別的局限性178
12.1.4 類別的作用178
12.2 利用類別分散實現178
12.3 使用類別創建前向引用182
12.4 非正式協定和委託類別183
12.4.1 ITunesFinder項目184
12.4.2 委託和類別187
12.4.3 回響選擇器187
12.4.4 選擇器的其他套用188
12.5 小結189
第13章 協定190
13.1 正式協定190
13.1.1 聲明協定190
13.1.2 採用協定191
13.1.3 實現協定192
13.2 複製192
13.2.1 複製Engine192
13.2.2 複製Tire194
13.2.3 複製Car196
13.2.4 協定和數據類型199
13.3 Objective-C2.0的新特性199
13.4 小結200
第14章 AppKit簡介201
14.1 構建項目201
14.2 構建AppController@interface203
14.3 InterfaceBuilder203
14.4 布局用戶界面205
14.5 連線207
14.5.1 連線輸出口207
14.5.2 連線操作208
14.6 AppController實現210
14.7 小結212
第15章 檔案載入與保存213
15.1 屬性列表213
15.1.1 NSDate213
15.1.2 NSData214
15.1.3 寫入和讀取屬性列表215