目 錄
第1講 配置開發環境.................................................1
1.1 Mac應用程序開發環境 .................................................1
1.2 iPhone應用程序開發環境 ..................................................................2
1.3 查看安裝目錄內容 ........................................................4
1.3.1 啓動Xcode................................................................... 5
1.3.2 啓動Interface Builder .................................................. 6
1.4 Mac中的基本操作 .........................................................6
1.4.1 彈齣菜單的顯示方法 .................................................. 6
1.4.2 工具條的定製 .............................................................. 8
第2講 應用程序與框架 ...............................................................10
2.1 關於應用程序 ..............................................................10
2.1.1 應用程序的種類 .........................................................11
2.1.2 關於iPhone應用程序 ................................................. 12
2.2 框架 .............................................................................13
2.2.1 簡單的【Hello World】程序 ..................................... 13
2.2.2 框架的齣現 ............................................................... 13
2.2.3 編程語言與框架的關係 ............................................. 14
2.3 Mac OS X以及iPhone SDK中的框架 ..............................................14
2.3.1 框架的安裝目錄 ........................................................ 14
2.3.2 Cocoa與Carbon ......................................................... 15
2.3.3 應用程序中使用的框架 ............................................. 16
2.4 Cocoa與Carbon的發展軌跡 .............................................................18
第3講 Cocoa與Objective-C ......................................................20
3.1 框架的使用 .................................................................20
3.1.1 關於API .................................................................... 20
3.1.2 API與編程語言的關係 .............................................. 21
3.2 Objective-C的發展史 ...................................................22
3.3 用於其他語言中的Cocoa API ..........................................................23
3.3.1 通過橋調用Cocoa...................................................... 23
3.3.2 是否應提倡在Objective-C以外的語言中調用Cocoa API的開發方式 .................. 24
3.4 解答與Objective-C相關的幾個疑問 ................................................25
第4講 開發工具 .......................................................27
4.1 Xcode ...........................................................................27
4.1.1 綜閤開發環境Xcode的功能 ..................................... 27
4.1.2 工程窗口 ................................................................... 28
4.1.3 文本編輯器的功能 .................................................... 32
4.1.4 開發者手冊 ............................................................... 35
4.2 Interface Builder ...........................................................36
4.3 Dashcode ......................................................................37
4.4 iPhone模擬器 ...............................................................38
4.5 其他工具 .....................................................................38
4.5.1 FileMerge .................................................................. 38
4.5.2 Icon Composer .......................................................... 39
4.5.3 Property List Editor ................................................... 39
4.6 Mac或iPhone應用程序開發的流程 .................................................39
4.6.1 準備應用程序用的材料 ............................................. 39
4.6.2 建立步驟 ................................................................... 41
4.6.3 gcc ........................................................ 42
第5講 Cocoa環境下的麵嚮對象編程 .....................................43
5.1 麵嚮對象的基本概念術語 ...............................................................43
5.1.1 類 ......................................................... 44
5.1.2 實例 ..................................................... 44
5.1.3 實例變量 ................................................................... 44
5.1.4 方法 ..................................................... 45
5.1.5 繼承 ..................................................... 45
5.1.6 相互關係 ................................................................... 46
5.1.7 對象 ..................................................... 46
5.2 在Cocoa實例中理解基本術語 .........................................................47
5.2.1 通過按鈕配置理解基本術語 ..................................... 47
5.2.2 文本輸入框的繼承關係 ............................................. 48
第6講 Hello World應用程序 ......................................................49
6.1 Hello World程序 ...........................................................49
6.2 啓動Xcode創建工程 ....................................................49
6.3 編輯代碼 .....................................................................51
6.4 啓動Interface Builder設計用戶界麵 ................................................52
6.4.1 xib文件................................................. 52
6.4.2 Interface Builder窗口 ................................................ 53
6.4.3 設計Hello World的用戶界麵 ..................................... 55
6.5 連接插座與動作 ..........................................................55
6.6 完成Hello World App Delegate的代碼編寫 ....................................................58
6.7 建立與運行 .................................................................59
6.8 開發步驟再迴顧 ........................................................61
第7講 MVC構架 ......................................................62
7.1 Hello World應用程序開發流程中包含的信息 ..........................................................62
7.2 什麼是MVC構架 .........................................................62
7.2.1 視圖層 .................................................. 63
7.2.2 模型層 .................................................. 63
7.2.3 控製層 .................................................. 64
7.3 使用MVC構架的實例 .................................................64
7.3.1 iTunes的模型 ............................................................ 64
7.3.2 iTunes的視圖 ............................................................ 65
7.3.3 iTunes的控製 ............................................................ 66
7.4 使用MVC構架的Cocoa應用程序開發特點 ..................................................66
7.4.1 視圖組件由Cocoa提供 .............................................. 66
7.4.2 保持視圖與模型間的相互獨立 ................................. 67
7.4.3 應用程序特有的功能由控製提供 ................................................... 67
7.4.4 隻用創建模型以及控製的類 ..................................... 67
第8講 插座與動作 ...................................................68
8.1 視圖與控製間信息交換 ...................................................................68
8.2 插座與動作 .................................................................69
8.2.1 什麼是插座 ............................................................... 69
8.2.2 什麼是動作 ............................................................... 69
8.3 插座與動作的連接 .....................................................70
8.3.1 插座與動作的追加 .................................................... 70
8.3.2 插座的連接 ............................................................... 71
8.3.3 動作的連接 ............................................................... 72
8.3.4 連接確認 ...................................................................73
第9講 Objective-C的語法 ..........................................................75
9.1 Objective-C的編程概論 ....................................................................75
9.1.1 Objective-C與C語言 ................................................. 75
9.1.2 Objective-C程序 ........................................................ 75
9.1.3 類的聲明與實體 ........................................................ 76
9.1.4 創建Objective-C的測試工程 ..................................... 76
9.2 類的聲明 .....................................................................81
9.2.1 導入聲明文件 ............................................................ 81
9.2.2 類的聲明 ................................................................... 82
9.2.3 實例變量的聲明 ........................................................ 82
9.2.4 實例方法的聲明 ........................................................ 83
9.3 編寫類的實體 ..............................................................87
9.3.1 編寫類的實體 ............................................................ 87
9.3.2 編寫方法代碼 ............................................................ 87
9.3.3 關於方法的聲明 ........................................................ 88
9.4 對象專用變量類型 ......................................................88
9.4.1 實例對象專用的變量類型 ......................................... 88
9.4.2 id類型 .................................................. 89
9.4.3 nil類型 ................................................. 89
9.4.4 在條件錶達式中使用對象變量 ................................. 89
9.5 方法調用 .....................................................................90
9.5.1 實例方法的調用 ........................................................ 90
9.5.2 類方法的調用 ............................................................ 91
9.5.3 對象為nil的情況 ....................................................... 92
9.6 命名規則 .....................................................................92
9.6.1 類的命名規則 ............................................................ 92
9.6.2 實例變量的命名規則 ................................................ 93
9.6.3 方法的命名規則 ........................................................ 93
9.7 重新解析Cocoa的Hello World程序..................................................94
9.7.1 HelloWorldAppDelegate.h ......................................... 94
9.7.2 HelloWorldAppDelegate.m ........................................ 95
第10講 內存管理 .....................................................98
10.1 內存分配與釋放 ........................................................98
10.2 與內存相關的問題 ....................................................99
10.2.1 內存釋放的時機 .................................................... 99
10.2.2 內存泄漏 ............................................................. 100
10.3 使用垃圾收集進行內存管理 .......................................................100
10.3.1 垃圾迴收 ............................................................. 100
10.3.2 Objective-C與垃圾迴收 ...................................... 102
10.3.3 垃圾迴收功能有效化 .......................................... 103
10.3.4 垃圾迴收編程的規則 .......................................... 103
10.4 由參照統計實現的內存管理 .......................................................104
10.4.1 參照統計的基本概念 .......................................... 104
10.4.2 retain、release方法 ............................................. 104
10.4.3 對象保持到釋放的流程 ...................................... 105
10.5 類的實例化 ..............................................................106
10.5.1 類的實例化與初期化 .......................................... 107
10.5.2 自動釋放 ............................................................. 108
10.5.3 創建實例的方法 .................................................. 108
10.5.4 實例的釋放 ......................................................... 109
10.6 內存管理的規則 ......................................................110
10.6.1 臨時對象 ..............................................................110
10.6.2 內存管理經驗總結 ...............................................111
第11講 字符串 ........................................................113
11.1 字符串專用類 ...........................................................113
11.2 NSString與NSMutableString ........................................................113
11.3 字符編碼 ..................................................................114
11.3.1 什麼是字符編碼 ...................................................114
11.3.2 NSString的字符代碼為Unicode ................................................115
11.3.3 NSStringEncoding ................................................115
11.4 字符串的生成 ...........................................................116
11.4.1 使用【@“”】的形式創建新字符串 ......................................116
11.4.2 創建中文字符串 ...................................................116
11.4.3 使用格式創建字符串 ...........................................118
11.5 NSRange ..................................................................119
11.6 字符串處理 ...............................................................120
11.6.1 計算字符串的長度 .............................................. 120
11.6.2 字符串連接、插入、刪除 ................................... 121
11.6.3 字符串的比較 ..................................................... 124
11.6.4 字符串的檢索 ..................................................... 125
11.6.5 抽取部分字符串 .................................................. 126
11.7 讀寫文本文件 ...........................................................127
11.7.1 讀取文本文件 ..................................................... 127
11.7.2 文本文件輸齣 ..................................................... 128
第12講 集閤 ............................................................130
12.1 數組 .........................................................................130
12.1.1 NSArray與 NSMutableArray .................................................... 130
12.1.2 數組的創建 ......................................................... 131
12.1.3 數組的長度 ......................................................... 132
12.1.4 通過索引取得對象 .............................................. 132
12.1.5 使用NSEnumerator取得對象 ................................................... 133
12.1.6 使用高速枚舉取得對象 ...................................... 136
12.1.7 對象的追加與刪除 .............................................. 136
12.2 字典 .........................................................................138
12.2.1 什麼是字典類型 .................................................. 138
12.2.2 NSDictionary與 NSMutableDictionary ..................................... 139
12.2.3 NSDictionary的創建 ........................................... 139
12.2.4 鍵與值的取得 ..................................................... 141
12.2.5 鍵與值的追加 ..................................................... 142
12.3 包裝類 .....................................................................143
12.3.1 什麼是包裝類 ..................................................... 143
12.3.2 NSNumber .......................................................... 144
12.4 對象的等價與同值 ..................................................146
12.4.1 擁有相同值的對象 .............................................. 146
12.4.2 等價與同值的判定 .............................................. 146
12.4.3 在集閤類中的應用 .............................................. 147
12.5 集閤類與參照統計 ..................................................148
12.5.1 NSArray與參照統計 ........................................... 148
12.5.2 NSDictionary與參照統計 .................................... 149
第13講 XML應用 ...................................................150
13.1 XML概要 .................................................................150
13.1.1 什麼是XML ........................................................ 150
13.1.2 一種常用的XML實例——RSS ................................................ 150
13.2 XML的解析 ..............................................................151
13.2.1 解析及解析器 ..................................................... 151
13.2.2 XML解析器的種類 ............................................. 152
13.2.3 樹結構................................................................. 153
13.3 Cocoa的XML解析器 ....................................................................154
13.3.1 NSXMLDocument、NSXMLNode、NSXMLElement .................................. 154
13.3.2 XML文檔的解析器 ............................................. 155
13.3.3 Xpath .................................................................. 157
13.3.4 節點信息 ............................................................. 158
13.3.5 節點的父子關係 .................................................. 159
13.3.6 屬性值的取得 ..................................................... 161
13.4 iPhone 應用軟件中的XML解析實例 ..........................................162
13.4.1 第三方API及實例概要 ........................................ 162
13.4.2 創建並完成RSS文件解析程序 ................................................. 163
第14講 UIKit框架簡介及iPhone應用程序基礎類 ..................................168
14.1 UIKit概要 ................................................................168
14.1.1 UIKit類列錶 ........................................................ 168
14.1.2 iPhone Hello World程序 ...................................... 171
14.1.3 不使用Interface Builder的Hello World程序 ............................. 175
14.1.4 在Xcode 4中創建Hello World程序 ........................................... 180
14.2 畫麵構成基礎——UIView ...........................................................184
14.2.1 UIView概要 ........................................................ 184
14.2.2 UIView嵌套 ........................................................ 187
14.3 UIViewController與畫麵控製 ......................................................195
14.3.1 使用UIViewController實現簡單的畫麵切換 ............................ 195
14.3.2 使用UITabBarController實現並列畫麵跳轉 ............................ 200
14.3.3 使用UINavigationController實現多層畫麵跳轉 ...................... 204
14.3.4 跳轉到任意畫麵 .................................................. 210
14.3.5 模態(modal)畫麵的顯示方法 .............................................. 212
第15講 iPhone應用程序中的事件響應 ................................215
15.1 事件響應 .................................................................215
15.1.1 按鈕的觸摸 ......................................................... 215
15.1.2 響應方法的定義 .................................................. 217
15.1.3 滑塊的滑動 ......................................................... 218
15.2 UIResponder .............................................................221
15.2.1 畫麵觸摸的檢測 .................................................. 221
15.2.2 標簽觸摸的檢測 .................................................. 222
15.2.3 響應鏈................................................................. 224
15.2.4 觸摸係列最終處理及取消 ................................... 228
15.3 二次觸碰 .................................................................229
15.4 手勢 .........................................................................232
15.4.1 拖動檢測 ............................................................. 232
15.4.2 滑動檢測 ............................................................. 236
15.4.3 快速滑動檢測 ..................................................... 240
15.5 多點觸摸 .................................................................243
15.5.1 檢測多點觸摸 .................................................... 243
15.5.2 檢測雙指滑動 ..................................................... 244
15.5.3 檢測擴大/縮小 .................................................. 246
15.6 振動 .........................................................................249
15.6.1 檢測振動 .............................................................249
第16講 常用UI控件 ...................................................................252
16.1 標簽(UILabel) .....................................................252
16.1.1 文本與對齊方式的設置 ...................................... 252
16.1.2 標簽顔色與文本顔色的修改 .................................................... 253
16.1.3 改變字體 ............................................................. 254
16.1.4 字體尺寸的自動調整 .......................................... 254
16.1.5 多行字符串 ......................................................... 255
16.1.6 換行與省略 ......................................................... 256
16.1.7 高亮時的文本顔色 .............................................. 256
16.1.8 陰影顯示 ............................................................. 256
16.1.9 繪製方法的定製 .................................................. 258
16.2 按鈕(UIButton) ...................................................259
16.2.1 按鈕的配置與觸摸檢測 ...................................... 259
16.2.2 按鈕的種類 ......................................................... 259
16.2.3 按鈕的狀態及標題變化 ...................................... 260
16.2.4 按鈕觸摸時的陰影反轉 ...................................... 261
16.2.5 按鈕觸摸時的背景閃爍 ...................................... 261
16.2.6 在按鈕中追加圖片 .............................................. 262
16.2.7 設置按鈕背景圖片 .............................................. 263
16.2.8 調整按鈕的邊間距 .............................................. 264
16.2.9 設置標題的換行/省略 ...................................... 265
16.3 文本輸入框(UITextField) ........................................................266
16.3.1 文本輸入框的顯示 .............................................. 266
16.3.2 鍵盤的顯示/隱藏 .............................................. 266
16.3.3 鍵盤的各種設置 .................................................. 267
16.3.4 文本輸入框的邊框綫 .......................................... 267
16.3.5 文本的橫嚮與縱嚮的調整 ................................... 267
16.3.6 文本輸入框的字體及顔色 ................................... 268
16.3.7 提示信息的設置 .................................................. 269
16.3.8 清空按鈕的顯示 .................................................. 269
16.3.9 背景圖片的設置 .................................................. 270
16.3.10 UIView的追加 .................................................... 270
16.3.11 文本輸入框的狀態監視 ...................................... 272
16.4 開關(UISwitch) ...................................................272
16.5 選擇控件(UISegmentedController) .........................................274
16.5.1 選擇控件的使用方法 .......................................... 274
16.5.2 選擇控件的種類 .................................................. 276
16.5.3 不顯示選擇狀態 .................................................. 276
16.5.4 選擇控件的顔色變更 .......................................... 276
16.5.5 使用圖標的選擇控件 .......................................... 277
16.5.6 修改選項內容的顯示位置 ................................... 278
16.5.7 設置選項的非活性 .............................................. 278
16.5.8 選項的插入與刪除 .............................................. 278
16.6 滑塊(UISlider) .....................................................280
16.6.1 滑塊的使用方法 .................................................. 280
16.6.2 滑塊值的通知時機 .............................................. 281
16.6.3 嚮滑塊中追加圖標 .............................................. 281
16.6.4 滑塊的定製 ......................................................... 282
16.7 日期時刻選擇框(UIDatePicker) .............................................284
16.7.1 日期時刻選擇框的使用 ...................................... 284
16.7.2 以動畫形式改變日期 .......................................... 285
16.7.3 設置間隔及最小/最大值 ................................... 285
16.7.4 日期選擇框的種類 .............................................. 286
16.7.5 定製日期選擇框 .................................................. 287
第17講 錶格視圖(UITableView) .......................................290
17.1 錶格顯示 .................................................................290
17.1.1 最簡單的錶格顯示 .............................................. 290
17.1.2 單元選擇時的動作 .............................................. 293
17.1.3 錶格的分段顯示 .................................................. 294
17.1.4 錶格的分組顯示 .................................................. 297
17.1.5 段腳的顯示 ......................................................... 299
17.1.6 索引的活用 ......................................................... 299
17.2 單元的定製 ..............................................................301
17.2.1 單元尺寸及顔色的修改 ...................................... 301
17.2.2 單元分隔綫的修改 .............................................. 302
17.2.3 追加圖片 ............................................................. 303
17.2.4 追加細節標簽 ..................................................... 305
17.2.5 追加附件 ............................................................. 306
17.2.6 追加自定義附件 .................................................. 308
17.2.7 追加僅編輯模式時顯示的附件 ................................................ 309
17.2.8 追加控件 ..............................................................311
17.2.9 定製單元背景 ..................................................... 315
第18講 使用SQLite數據庫 ......................................................317
18.1 SQLite數據庫及使用SQLite數據庫的前期準備 ................................................317
18.1.1 SQLite數據庫概要 .............................................. 317
18.1.2 使用SQLite數據庫的前期準備 ................................................ 318
18.2 創建數據庫及錶格 ..................................................319
18.3 連接數據庫 ..............................................................321
18.4 數據檢索 .................................................................324
18.5 數據的追加與刪除 ..................................................328
18.6 數據庫更新 ..............................................................332
18.7 使用Core Data進行數據的追加、刪除 .......................................335
18.7.1 Core Data的優點 ................................................. 335
18.7.2 創建使用Core Data的應用程序................................................ 336
18.7.3 改造Core Data的數據模型 .................................. 337
18.7.4 修改數據登錄與保持代碼 ................................... 341
18.7.5 數據刪除代碼 ..................................................... 342
18.8 追加編輯數據畫麵 ..................................................342
18.9 添加排序項目 ..........................................................345
第19講 調試方法 ...................................................349
19.1 缺陷與調試 ..............................................................349
19.1.1 什麼是缺陷與調試 .............................................. 349
19.1.2 描述缺陷 ............................................................. 350
19.1.3 缺陷的重現 ......................................................... 350
19.2 NSLog ......................................................................351
19.2.1 使用NSlog輸齣調試信息 .................................... 351
19.2.2 NSLog的格式 ...................................................... 353
19.3 調試工具 .................................................................354
19.3.1 什麼是調試工具 .................................................. 355
19.3.2 調試構建配置 ..................................................... 355
19.3.3 斷點與調試模式的啓動 ...................................... 356
19.3.4 調試界麵 ............................................................. 356
19.3.5 調試的分步執行 .................................................. 358
19.4 例外 .........................................................................359
19.4.1 什麼是例外 ......................................................... 359
19.4.2 捕捉例外 ............................................................. 360
19.4.3 發生例外時停止運行 .......................................... 362
19.4.4 避免使用太多的例外 .......................................... 363
第20講 使用iPhone終端進行測試 .........................................364
20.1 iPhone Developer Program ............................................................364
20.1.1 【iPhone Developer Program】的會員種類 ............................. 364
20.1.2 【iPhone Developer Program】的注冊手續 ............................. 365
20.1.3 關於【Apple ID】 ............................................... 365
20.1.4 【iPhone Developer Program】的付款及認證手續 .................. 366
20.2 在實際iPhone手機上的調試 ........................................................366
索引 ..............................................................................379
· · · · · · (
收起)