內容簡介
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.1 最簡單的Objective-C程式4
2.2 解構HelloObjective-C程式7
2.2.1 #import7
2.2.2 NSLog()和@"字元串"8
2.3 布爾類型10
2.3.1 BOOL強大的實用功能11
2.3.2 比較13
2.4 小結14
第3章 面向對象編程基礎知識15
3.1 間接15
3.1.1 變數與間接16
3.1.2 使用檔案名稱的間接18
3.2 在面向對象的編程中使用間接24
3.2.1 過程式編程24
3.2.2 實現面向對象編程29
3.3 學習有關的術語33
3.4 Objective-C中的OOP34
3.4.1 @interface部分34
3.4.2 @implementation部分38
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.3.2 實例變數53
4.4 重寫方法55
4.5 小結57
第5章 複合58
5.1 什麼是複合58
5.1.1 Car程式58
5.1.2 自定義NSLog()59
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 在Xcode的幫助下編寫代碼85
7.3.1 首行縮進85
7.3.2 代碼自動完成85
7.3.3 括弧匹配88
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章 記憶體管理129
9.1 對象生命周期129
9.1.1 引用計數130
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.1 子類化問題157
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
15.2 編碼對象216
15.3 小結221
第16章 鍵/值編碼222
16.1 入門項目222
16.2 KVC簡介224
16.3 路徑225
16.4 整體操作226
16.4.1 中途小憩227
16.4.2 流暢地運算231
16.5 批處理233
16.6 nil仍然可用234
16.7 處理未定義的鍵235
16.8 小結236
第17章 NSPredicate237
17.1 創建謂詞237
17.2 燃料過濾器239
17.3 格式說明符240
17.4 運算符241
17.4.1 比較和邏輯運算符242
17.4.2 數組運算符243
17.5 SELF足夠了243
17.6 字元串運算符245
17.7 LIKE運算符245
17.8 小結246
附錄 從其他語言轉向Objective-C247
序言