第一篇 基礎篇
第1章 第一個Objective-C程序 2
1.1 Objective-C開發概述 2
1.1.1 Objective-C的發展史 2
1.1.2 Objective-C的特點 3
1.2 構建開發環境 4
1.2.1 Objective-C開發環境的安裝條件 4
1.2.2 VirtualBox下載和安裝 5
1.2.3 虛擬機的建立 7
1.2.4 設置虛擬機 10
1.2.5 安裝係統 11
1.2.6 進入界麵 11
1.2.7 下載和安裝Xcode 16
1.3 “Hello World!”程序 20
1.3.1 創建Hello Objective-C項目 20
1.3.2 編譯、鏈接及運行 22
1.4 Objective-C代碼認識 24
1.4.1 查看源文件 24
1.4.2 Objective-C程序的結構 25
1.4.3 注釋 25
1.4.4 標識符 26
1.5 小結 28
1.6 習題 28
第2章 數據類型 30
2.1 數 30
2.1.1 二進製數 30
2.1.2 十進製數 31
2.1.3 八進製數 32
2.1.4 十六進製數 33
2.1.5 各進製之間的轉換 34
2.2 數據類型 34
2.2.1 整數類型 34
2.2.2 實型數據 36
2.2.3 字符型 37
2.2.4 數據類型的輸齣 40
2.2.5 Objective-C特有的數據類型 40
2.3 變量和常量 40
2.3.1 變量 41
2.3.2 常量 43
2.4 小結 45
2.5 習題 45
第3章 語句 48
3.1 語句的構成 48
3.2 運算符及錶達式 49
3.2.1 算術運算符及錶達式 49
3.2.2 自增自減運算符 51
3.2.3 位運算符 52
3.2.4 賦值運算符及錶達式 55
3.2.5 關係運算符及錶達式 59
3.2.6 條件運算符 60
3.2.7 布爾邏輯運算符及錶達式 62
3.2.8 逗號運算符及錶達式 64
3.2.9 求字節數運算符 65
3.2.10 特殊的運算符 66
3.2.11 運算符的優先級 67
3.3 類型轉換 69
3.3.1 自動轉換 69
3.3.2 強製類型轉換 71
3.4 語句塊 72
3.4.1 語句塊的結構 72
3.4.2 作用域 73
3.5 小結 74
3.6 習題 74
第4章 程序控製結構 77
4.1 順序結構 77
4.2 選擇結構 78
4.2.1 條件語句的組成 78
4.2.2 if語句 79
4.2.3 if...else語句 80
4.2.4 if...else...if語句 82
4.2.5 三種if語句的注意事項 84
4.2.6 if語句的嵌套 86
4.2.7 switch語句 87
4.3 循環結構 90
4.3.1 while語句 91
4.3.2 for語句 92
4.3.3 do...while語句 97
4.3.4 三種循環語句的比較 98
4.4 轉摺語句 99
4.4.1 break語句 99
4.4.2 continue 101
4.4.3 break和continue的比較 101
4.4.4 return語句 102
4.5 小結 102
4.6 習題 103
第5章 函數 105
5.1 函數簡介 105
5.2 函數的使用 107
5.2.1 函數的聲明 107
5.2.2 函數的定義和調用 107
5.2.3 函數使用中的問題 109
5.2.4 空函數 110
5.3 函數的參數 111
5.3.1 參數 111
5.3.2 有參函數的定義和調用 112
5.3.3 參數的注意事項 113
5.3.4 函數的傳遞方式 114
5.4 函數的返迴值 115
5.4.1 返迴某一數據類型的值 115
5.4.2 無返迴值 117
5.5 函數的嵌套和遞歸 117
5.5.1 函數的嵌套 117
5.5.2 函數的遞歸 119
5.6 小結 120
5.7 習題 120
第二篇 麵嚮對象篇
第6章 麵嚮對象編程 124
6.1 類和對象 124
6.1.1 類的聲明和定義 124
6.1.2 實例化對象 126
6.2 實例變量 130
6.2.1 實例變量的定義 130
6.2.2 實例變量的使用 130
6.2.3 實例變量、全局變量和局部變量的區彆 131
6.2.4 變量的存儲類彆 132
6.3 方法 135
6.3.1 方法的聲明 135
6.3.2 方法的實現 136
6.3.3 對象方法的使用 136
6.3.4 類方法的使用 138
6.3.5 方法的參數 139
6.4 屬性 142
6.4.1 屬性的聲明和定義 142
6.4.2 帶參屬性 144
6.4.3 帶參屬性——setter/getter方法(assign/retain/copy) 144
6.4.4 帶參屬性——讀寫屬性 148
6.4.5 帶參屬性——原子修飾 149
6.5 小結 150
6.6 習題 150
第7章 深入麵嚮對象的編程 154
7.1 繼承 154
7.1.1 繼承的實現 154
7.1.2 實例變量的繼承 155
7.1.3 方法的繼承 158
7.2 訪問限定符 159
7.2.1 @public 159
7.2.2 @protected 161
7.2.3 @private 161
7.2.4 訪問限定符的區彆 162
7.3 方法重寫 163
7.3.1 方法重寫的形式 163
7.3.2 super 164
7.4 方法重載 165
7.5 多層繼承 166
7.6 多態 169
7.6.1 多態的形式 169
7.6.2 方法的重寫實現多態 170
7.6.3 方法的重載實現多態 171
7.7 動態類型和動態綁定 172
7.7.1 動態類型id 172
7.7.2 動態綁定 173
7.8 小結 174
7.9 習題 174
第8章 分類和協議 180
8.1 分類 180
8.1.1 分類的聲明 180
8.1.2 分類的定義 180
8.1.3 分類的使用 181
8.1.4 分類的創建 181
8.1.5 分類使用的注意點 183
8.2 協議 185
8.2.1 協議的定義 185
8.2.2 協議的創建 186
8.2.3 協議在類中的聲明 187
8.2.4 所用協議聲明方法 187
8.2.5 關鍵字 188
8.2.6 多個協議的使用 192
8.2.7 在協議中使用協議 193
8.2.8 判斷協議實現的方法 194
8.2.9 協議的分類 195
8.3 小結 196
8.4 習題 196
第三篇 技術篇
第9章 內存管理 200
9.1 內存管理的基礎 200
9.1.1 申請內存(alloc) 200
9.1.2 釋放內存(dealloc) 201
9.2 引用計數 204
9.2.1 引用計數和字符串 205
9.2.2 引用計數和實例變量 206
9.3 自動釋放池 207
9.3.1 自動釋放池 207
9.3.2 建立多個自動釋放池 209
9.3.3 引用計數和自動釋放池 210
9.4 內存管理規則及內存泄漏 211
9.4.1 內存管理規則 211
9.4.2 內存泄漏 213
9.5 垃圾迴收 213
9.6 小結 214
9.7 習題 214
第10章 Foundation框架的基本對象 217
10.1 數字對象 217
10.1.1 數字對象的介紹 217
10.1.2 數字對象的使用 218
10.2 字符串對象 224
10.2.1 字符串和字符的區彆 224
10.2.2 不可修改的字符串 225
10.2.3 可修改的字符串 232
10.3 數組對象 235
10.3.1 數組的定義 235
10.3.2 數組的聲明 235
10.3.3 數組的引用 237
10.3.4 二維數組的聲明和定義 238
10.3.5 二維數組初始化的方法 239
10.3.6 二維數組的引用 240
10.3.7 字符數組的含義 241
10.3.8 字符數組初始化 241
10.3.9 字符數組的引用 241
10.3.10 不可修改的數組 242
10.3.11 可修改的數組 246
10.4 字典對象 251
10.4.1 不可修改的字典 251
10.4.2. 可修改的字典 253
10.5 集閤對象 256
10.5.1 不可修改的集閤 257
10.5.2 可修改的集閤 259
10.6 小結 263
10.7 習題 263
第11章 文件和目錄處理 267
11.1 文件的操作 267
11.1.1 創建文件 267
11.1.2 文件的使用 268
11.1.3 對文件數據的操作 274
11.1.4 文件的讀寫 278
11.2 目錄的操作 286
11.2.1 目錄的基本操作方法 286
11.2.2 目錄的顯示 289
11.2.3 臨時目錄 292
11.2.4 路徑 293
11.3 小結 294
11.4 習題 294
第12章 編譯預處理 296
12.1 宏定義 296
12.1.1 不帶參宏定義 296
12.1.2 帶參宏 297
12.1.3 使用宏的注意點 298
12.1.4 宏的取消 299
12.2 文件包含 301
12.3 條件編譯 304
12.3.1 #ifdef 304
12.3.2 #ifndef 305
12.3.3 #if 307
12.3.4 編譯預處理總結 307
12.4 小結 308
12.5 習題 308
第13章 進程和綫程 312
13.1 進程 312
13.1.1 創建進程 312
13.1.2 進程的使用 313
13.1.3 進程方法總結 315
13.2 綫程 315
13.2.1 使用NSThread創建綫程 316
13.2.2 啓動綫程 316
13.2.3 訪問主綫程 318
13.3 互斥鎖 318
13.3.1 NSLock 319
13.3.2 @synchronized 320
13.4 進程和綫程的區彆 321
13.5 小結 322
13.6 習題 322
第14章 歸檔 324
14.1 XML屬性列錶 324
14.1.1 使用XML進行數據保存 324
14.1.2 使用XML進行數據讀取 326
14.2 NSKeyedArchiver 329
14.2.1 NSKeyedArchive的數據保存 330
14.2.2 NSKeyedArchive的數據讀取 331
14.3 編碼和解碼方法 331
14.3.1 直接進行歸檔 332
14.3.2 編碼方法 333
14.3.3 解碼方法 333
14.4 保存多個對象到一個文件 335
14.5 使用歸檔程序復製對象 337
14.6 小結 337
14.7 習題 338
第15章 錯誤處理 341
15.1 錯誤的分類 341
15.2 使用返迴值 342
15.3 使用異常處理 342
15.3.1 異常處理的使用 343
15.3.2 捕獲不同類型的異常 345
15.3.3 使用異常的注意點 346
15.3.4 拋齣異常 348
15.4 使用NSError 349
15.5 小結 350
15.6 習題 351
第16章 時間日期處理 352
16.1 NSDate 352
16.1.1 創建NSDate 352
16.1.2 獲取當前的日期 353
16.1.3 獲取昨天的日期 353
16.1.4 日期的比較 355
16.1.5 兩個日期的時間差 358
16.1.6 時間間隔 358
16.2 使用NSCalendar 359
16.2.1 創建一個給定日期的NSDate對象 359
16.2.2 日期在不同日曆間的轉換 361
16.2.3 獲取日期總的年月日 361
16.3 字符串和日期的相互轉化 362
16.3.1 將日期轉化為字符串 362
16.3.2 將字符串轉化為日期 363
16.4 時區 365
16.5 小結 366
16.6 習題 366
第四篇 iPhone開發入門篇
第17章 iPhone入門 370
17.1 iPhone簡介 370
17.1.1 iPhone的發展 370
17.1.2 編寫iPhone應用程序和其他程序的不同 371
17.2 第一個“Hello World!”程序 371
17.2.1 創建Hello World項目 371
17.2.2 iPhone Simulator的簡介 371
17.2.3 使用Interface Builder 373
17.2.4 編寫第一個“Hello World!”程序 376
17.3 小結 378
· · · · · · (
收起)