目 錄
第1章 啓程 1
1.1 預備知識 1
1.2 曆史 1
1.3 內容簡介 2
1.4 準備工作 3
1.5 小結 5
第2章 對C的擴展 6
2.1 最簡單的Objective-C程序 6
2.2 解構Hello Objective-C程序 10
2.2.1 #import語句 10
2.2.2 框架 11
2.2.3 NSLog()和@"字符串" 11
2.3 布爾類型 14
2.4 小結 18
第3章 麵嚮對象編程的基礎知識 19
3.1 間接 19
3.1.1 變量與間接 20
3.1.2 使用文件名的間接 22
3.2 在麵嚮對象編程中使用間接 28
3.2.1 過程式編程 28
3.2.2 實現麵嚮對象編程 34
3.3 有關術語 37
3.4 Objective-C語言中的OOP 38
3.4.1 @interface部分 38
3.4.2 @implementation部分 41
3.4.3 實例化對象 43
3.4.4 擴展Shapes-Object程序 45
3.5 小結 47
第4章 繼承 48
4.1 為何使用繼承 48
4.2 繼承的語法格式 51
4.3 繼承的工作機製 53
4.3.1 方法調度 54
4.3.2 實例變量 55
4.4 重寫方法 57
4.5 小結 59
第5章 復閤 61
5.1 什麼是復閤 61
5.2 自定義NSLog() 62
5.3 存取方法 65
5.3.1 設置engine屬性的存取方法 66
5.3.2 設置tires屬性的存取方法 67
5.3.3 Car類代碼的其他變化 68
5.4 擴展CarParts程序 69
5.5 復閤還是繼承 70
5.6 小結 71
第6章 源文件組織 72
6.1 拆分接口和實現 72
6.2 拆分Car程序 75
6.3 使用跨文件依賴關係 77
6.3.1 重新編譯須知 78
6.3.2 讓汽車跑一會兒 79
6.3.3 導入和繼承 81
6.4 小結 82
第7章 深入瞭解Xcode 84
7.1 窗口布局一覽 84
7.2 改變公司名稱 85
7.3 使用編輯器的技巧 86
7.4 在Xcode的幫助下編寫代碼 87
7.4.1 首行縮進(美觀排版) 88
7.4.2 代碼自動完成 88
7.4.3 括號配對 90
7.4.4 批量編輯 91
7.4.5 代碼導航 94
7.4.6 集中精力 96
7.4.7 使用導航條 97
7.4.8 獲取信息 98
7.5 調試 101
7.5.1 暴力測試 101
7.5.2 Xcode的調試器 101
7.5.3 精巧的調試符號 101
7.5.4 開始調試 101
7.5.5 檢查程序 104
7.6 備忘錶 105
7.7 小結 106
第8章 Foundation Kit介紹 107
8.1 穩固的Foundation 107
8.2 使用項目樣本代碼 107
8.3 一些有用的數據類型 108
8.3.1 範圍 108
8.3.2 幾何數據類型 109
8.4 字符串 109
8.4.1 創建字符串 110
8.4.2 類方法 110
8.4.3 關於大小 111
8.4.4 字符串比較 111
8.4.5 不區分大小寫的比較 112
8.4.6 字符串內是否還包含彆的字符串 113
8.4.7 可變性 114
8.5 集閤大傢族 115
8.5.1 NSArray 115
8.5.2 可變數組 119
8.5.3 枚舉 120
8.5.4 快速枚舉 121
8.5.5 NSDictionary 122
8.5.6 請不要亂來 124
8.6 其他數值 124
8.6.1 NSNumber 124
8.6.2 NSValue 125
8.6.3 NSNull 126
8.7 示例:查找文件 126
8.8 小結 130
第9章 內存管理 131
9.1 對象生命周期 131
9.1.1 引用計數 132
9.1.2 對象所有權 134
9.1.3 訪問方法中的保留和釋放 134
9.1.4 自動釋放 136
9.1.5 所有對象放入池中 136
9.1.6 自動釋放池的銷毀時間 137
9.1.7 自動釋放池的工作流程 138
9.2 Cocoa的內存管理規則 140
9.2.1 臨時對象 141
9.2.2 擁有對象 141
9.2.3 垃圾迴收 143
9.2.4 自動引用計數 144
9.3 異常 154
9.3.1 與異常有關的關鍵字 155
9.3.2 捕捉不同類型的異常 156
9.3.3 拋齣異常 156
9.3.4 異常也需要內存管理 157
9.3.5 異常和自動釋放池 158
9.4 小結 159
第10章 對象初始化 160
10.1 分配對象 160
10.1.1 初始化對象 160
10.1.2 編寫初始化方法 161
10.1.3 初始化時要做些什麼 162
10.2 便利初始化函數 163
10.3 更多部件改進 164
10.3.1 Tire類的初始化 165
10.3.2 更新main()函數 166
10.3.3 清理Car類 168
10.4 Car類的內存清理(垃圾迴收方式和ARC方式) 171
10.5 指定初始化函數 172
10.5.1 子類化問題 173
10.5.2 Tire類的初始化函數改進 後的版本 175
10.5.3 添加AllWeatherRadial類 的初始化函數 175
10.6 初始化函數規則 176
10.7 小結 176
第11章 屬性 177
11.1 使用屬性值 177
11.1.1 簡化接口代碼 178
11.1.2 簡化實現代碼 179
11.1.3 點錶達式的妙用 182
11.2 屬性擴展 183
11.2.1 名稱的使用 186
11.2.2 隻讀屬性 188
11.2.3 自己動手有時更好 189
11.2.4 特性不是萬能的 189
11.3 小結 189
第12章 類彆 191
12.1 創建類彆 191
12.1.1 開始創建類彆 192
12.1.2 @interface部分 193
12.1.3 @implementation部分 194
12.1.4 類彆的缺陷 195
12.1.5 類彆的優勢 196
12.1.6 類擴展 196
12.2 利用類彆分散實現代碼 197
12.3 通過類彆創建前嚮引用 200
12.4 非正式協議和委托類彆 201
12.4.1 ITunesFinder項目 202
12.4.2 委托和類彆 204
12.4.3 響應選擇器 205
12.4.4 選擇器的其他應用 206
12.5 小結 206
第13章 協議 207
13.1 正式協議 207
13.1.1 聲明協議 207
13.1.2 采用協議 208
13.1.3 實現協議 209
13.2 復製 209
13.2.1 復製Engine 210
13.2.2 復製Tire 211
13.2.3 復製Car 212
13.2.4 協議和數據類型 215
13.3 Objective-C 2.0的新特性 215
13.4 委托方法 216
13.5 小結 218
第14章 代碼塊和並發性 219
14.1 代碼塊 219
14.1.1 代碼塊和函數指針 219
14.1.2 Objective-C變量 223
14.2 並發性 224
14.2.1 同步 224
14.2.2 隊列也要內存管理 227
14.2.3 操作隊列 229
14.3 小結 231
第15章 AppKit簡介 232
15.1 構建項目 232
15.2 創建委托文件的@interface部分 234
15.3 Interface Builder 235
15.4 設計用戶界麵 236
15.5 創建連接 239
15.5.1 連接輸齣口(IBOutlet) 239
15.5.2 連接操作(IBAction) 240
15.6 應用程序委托的實現 242
15.7 小結 244
第16章 UIKit簡介 245
16.1 視圖控製器 249
16.2 小結 263
第17章 文件加載與保存 264
17.1 屬性列錶 264
17.1.1 NSDate 264
17.1.2 NSData 265
17.1.3 寫入和讀取屬性列錶 266
17.1.4 修改對象類型 267
17.2 編碼對象 268
17.3 小結 273
第18章 鍵/值編碼 274
18.1 入門項目 274
18.2 KVC簡介 276
18.3 鍵路徑 277
18.4 整體操作 278
18.4.1 休息一下 279
18.4.2 快速運算 282
18.5 批處理 284
18.6 nil仍然可用 285
18.7 處理未定義的鍵 286
18.8 小結 287
第19章 使用靜態分析器 288
19.1 靜態工作 288
19.1.1 開始分析 288
19.1.2 協助分析器 292
19.1.3 瞭解更多 293
19.2 小結 295
第20章 NSPredicate 296
20.1 創建謂詞 296
20.2 計算謂詞 297
20.3 數組過濾器 298
20.4 格式說明符 299
20.5 運算符 300
20.5.1 比較和邏輯運算符 300
20.5.2 數組運算符 301
20.6 有SELF就足夠瞭 302
20.7 字符串運算符 304
20.8 LIKE運算符 304
20.9 結語 305
附錄 從其他語言轉嚮Objective-C 306
索引 314
· · · · · · (
收起)