預覽目錄
1引言 1
第一部分Objective-C語言
2Objective-C編程 9
3類、對象和方法 29
4數據類型和錶達式 53
5循環結構 73
6選擇結構 95
7類 129
8繼承 155
9多態、動態類型和動態綁定 181
10變量和數據類型 199
11分類和協議 223
12預處理程序 239
13基本的C語言特性 253
第二部分Foundation框架
14Foundation框架簡介 311
15數字、字符串和集閤 315
16使用文件 379
17內存管理和自動引用計數 409
18復製對象 423
19歸檔 435
第三部分Cocoa、Cocoa Touch與iOS的SDK
20Cocoa和Cocoa Touch簡介 453
21編寫iOS應用程序 457
附錄A術語錶 489
附錄B地址簿示例源代碼 501
目錄
1引言 1
1.1 本書內容 2
1.2 本書組織方式 3
1.3 支持 5
1.4 緻謝 6
1.5 第6版前言 7
第一部分Objective-C語言
2Objective-C編程 9
2.1 編譯並運行程序 9
2.1.1 使用Xcode 10
2.1.2 使用Terminal 17
2.2 解釋第一個程序 20
2.3 顯示變量的值 24
2.4 小結 26
2.5 練習 27
3類、對象和方法 29
3.1 到底什麼是對象 29
3.2 實例和方法 30
3.3 用於處理分數的Objective-C類 32
3.4 @interface部分 35
3.4.1 選擇名稱 35
3.4.2 類方法和實例方法 37
3.5 @implementation部分 39
3.6 program部分 41
3.7 實例變量的訪問及數據封裝 47
3.8 小結 51
3.9 練習 51
4數據類型和錶達式 53
4.1 數據類型和常量 53
4.1.1 int類型 53
4.1.2 float類型 54
4.1.3 char類型 54
4.1.4 限定詞:long、long long、short、unsigned及signed 55
4.1.5 id類型 56
4.2 算術錶達式 57
4.2.1 運算符的優先級 57
4.2.2 整數運算和一元負號運算符 60
4.2.3 模運算符 62
4.2.4 整型值和浮點值的相互轉換 63
4.2.5 類型轉換運算符 65
4.3 賦值運算符 66
4.4 Calculator類 67
4.5 練習 70
5循環結構 73
5.1 for語句 74
5.1.1 鍵盤輸入 81
5.1.2 嵌套的for循環 83
5.1.3 for循環的變體 85
5.2 while語句 86
5.3 do語句 90
5.4 break語句 92
5.5 continue語句 92
5.6 小結 93
5.7 練習 93
6選擇結構 95
6.1 if語句 95
6.1.1 if-else結構 100
6.1.2 復閤條件測試 103
6.1.3 嵌套的if語句 106
6.1.4 else if結構 107
6.2 switch語句 117
6.3 Boolean變量 120
6.4 條件運算符 125
6.5 練習 127
7類 129
7.1 分離接口和實現文件 129
7.2 閤成存取方法 135
7.3 使用點運算符訪問屬性 137
7.4 具有多個參數的方法 139
7.4.1 不帶參數名的方法 141
7.4.2 關於分數的操作 141
7.5 局部變量 145
7.5.1 方法的參數 146
7.5.2 static關鍵字 147
7.6 self關鍵字 150
7.7 在方法中分配和返迴對象 151
7.7.1 擴展類的定義和接口文件 153
7.8 練習 153
8繼承 155
8.1 一切從根類開始 155
8.1.1 找齣正確的方法 159
8.2 通過繼承來擴展:添加新方法 160
8.2.1 Point類和對象創建 164
8.2.2 @class指令 165
8.2.3 具有對象的類 169
8.3 覆寫方法 173
8.3.1 選擇哪種方法 174
8.4 抽象類 177
8.5 練習 178
9多態、動態類型和動態綁定 181
9.1 多態:相同的名稱,不同的類 181
9.2 動態綁定和id類型 184
9.3 編譯時和運行時檢查 186
9.4 id數據類型與靜態類型 187
9.4.1 動態類型的參數和返迴類型 188
9.5 有關類的問題 189
9.6 使用@try處理異常 194
9.7 練習 196
10變量和數據類型 199
10.1 對象的初始化 199
10.2 作用域迴顧 203
10.2.1 關於屬性、存取方法和實例變量 203
10.2.2 全局變量 204
10.2.3 靜態變量 206
10.3 枚舉數據類型 208
10.4 typedef語句 212
10.5 數據類型轉換 213
10.5.1 轉換規則 213
10.6 位運算符 215
10.6.1 按位與運算符 216
10.6.2 按位或運算符 217
10.6.3 按位異或運算符 218
10.6.4 一次求反運算符 218
10.6.5 嚮左移位運算符 220
10.6.6 嚮右移位運算符 221
10.7 練習 221
11分類和協議 223
11.1 分類 223
11.2 類的擴展 228
11.2.1 關於分類的注意事項 229
11.3 協議和代理 230
11.3.1 代理 233
11.3.2 非正式協議 234
11.4 閤成對象 235
11.5 練習 236
12預處理程序 239
12.1 #define語句 239
12.1.1 更高級的定義類型 241
12.2 #import語句 246
12.3 條件編譯 247
12.3.1 #ifdef、#endif、#else和#ifndef語句 248
12.3.2 #if和#elif預處理程序語句 250
12.3.3 #undef語句 251
12.4 練習 251
13基本的C語言特性 253
13.1 數組 254
13.1.1 數組元素的初始化 256
13.1.2 字符數組 257
13.1.3 多維數組 258
13.2 函數 260
13.2.1 參數和局部變量 262
13.2.2 函數的返迴結果 263
13.2.3 函數、方法和數組 267
13.3 塊(Blocks) 268
13.4 結構 272
13.4.1 結構的初始化 275
13.4.2 結構中的結構 276
13.4.3 關於結構的補充細節 278
13.4.4 不要忘記麵嚮對象編程思想 279
13.5 指針 279
13.5.1 指針和結構 283
13.5.2 指針、方法和函數 285
13.5.3 指針和數組 287
13.5.4 指針運算 297
13.5.5 指針和內存地址 299
13.6 它們不是對象 299
13.7 其他語言特性 300
13.7.1 復閤字麵量 300
13.7.2 goto語句 301
13.7.3 空語句 301
13.7.4 逗號運算符 301
13.7.5 sizeof運算符 302
13.7.6 命令行參數 303
13.8 工作原理 305
13.8.1 事實#1:實例變量存儲在結構中 306
13.8.2 事實#2:對象變量實際上是指針 306
13.8.3 事實#3:方法是函數,而消息錶達式是函數調用 307
13.8.4 事實#4:id類型是通用指針類型 307
13.9 練習 307
第二部分Foundation框架
14Foundation框架簡介 311
14.1 Foundation文檔 311
15數字、字符串和集閤 315
15.1 數字對象 315
15.2 字符串對象 321
15.2.1 NSLog函數 321
15.2.2 description方法 322
15.2.3 可變對象與不可變對象 323
15.2.4 可變字符串 330
15.3 數組對象 336
15.3.1 製作地址簿 341
15.3.2 數組排序 358
15.4 詞典對象 364
15.4.1 枚舉詞典 366
15.5 集閤對象 369
15.5.1 NSIndexSet 373
15.6 練習 375
16使用文件 379
16.1 管理文件和目錄:NSFileManager 380
16.1.1 使用NSData類 385
16.1.2 使用目錄 386
16.1.3 枚舉目錄中的內容 389
16.2 使用路徑:NSPathUtilities.h 391
16.2.1 常用的路徑處理方法 394
16.2.2 復製文件和使用NSProcessInfo類 396
16.3 基本的文件操作:NSFileHandle 400
16.4 NSURL類 405
16.5 NSBundle類 406
16.6 練習 407
17內存管理和自動引用計數 409
17.1 自動垃圾收集 411
17.2 手工管理內存計數 411
17.2.1 對象引用和自動釋放池 412
17.3 事件循環和內存分配 414
17.4 手工內存管理規則的總結 416
17.5 自動引用計數(ARC) 417
17.6 強變量 418
17.7 弱變量 419
17.8 @autoreleasepool塊 420
17.9 方法名和非ARC編譯代碼 420
18復製對象 423
18.1 copy和mutableCopy方法 424
18.2 淺復製與深復製 426
18.3 實現<NSCopying>協議 428
18.4 用設值方法和取值方法復製對象 431
18.5 練習 433
19歸檔 435
19.1 使用XML屬性列錶進行歸檔 435
19.2 使用NSKeyedArchiver歸檔 437
19.3 編碼方法和解碼方法 439
19.4 使用NSData創建自定義檔案 446
19.5 使用歸檔程序復製對象 450
19.6 練習 451
第三部分Cocoa、Cocoa Touch與iOS的SDK
20Cocoa和Cocoa Touch簡介 453
20.1 框架層 453
20.2 Cocoa Touch 454
21編寫iOS應用程序 457
21.1 iOS SDK 457
21.2 第一個iPhone應用程序 457
21.2.1 創建新的iPhone應用程序項目 460
21.2.2 輸入代碼 463
21.2.3 設計界麵 466
21.3 iPhone分數計算器 474
21.3.1 啓動新的Fraction_Calculator項目 475
21.3.2 定義視圖控製器 476
21.3.3 Fraction類 481
21.3.4 處理分數的Calculator類 485
21.3.5 設計UI 486
21.4 小結 487
21.5 練習 488
附錄A術語錶 489
附錄B地址簿示例源代碼 501
· · · · · · (
收起)