第1章 iPhone SDK簡介 1
1.1 iPhone開發人員計劃 1
1.1.1 在綫開發人員計劃 1
1.1.2 標準開發人員計劃 2
1.1.3 企業開發人員計劃 2
1.1.4 大學開發人員計劃 2
1.1.5 注冊 2
1.2 開始 2
1.2.1 下載SDK 2
1.2.2 開發設備 3
1.2.3 模擬器的限製 4
1.2.4 Tethering 4
1.3 理解型號差異 5
1.3.1 攝像頭 5
1.3.2 揚聲器和麥剋風 5
1.3.3 手機 6
1.3.4 Core Location的差異 6
1.3.5 振動支持和接近傳感器 6
1.3.6 處理器速度 6
1.3.7 OpenGL ES 7
1.4 平颱限製 7
1.4.1 存儲限製 7
1.4.2 數據訪問限製 7
1.4.3 內存限製 7
1.4.4 交互限製 8
1.4.5 電量限製 8
1.4.6 應用程序限製 8
1.4.7 用戶行為限製 9
1.5 SDK限製 9
1.6 使用開發人員門戶 9
1.6.1 建立團隊 10
1.6.2 請求證書 10
1.6.3 注冊設備 11
1.6.4 注冊應用程序標識符 11
1.6.5 設置 12
1.7 組建iPhone項目 12
1.7.1 iPhone應用程序的主乾 13
1.7.2 main.m 14
1.7.3 應用程序委托 15
1.7.4 視圖控製器 16
1.7.5 關於本書示例代碼的說明 16
1.8 iPhone應用程序組件 17
1.8.1 應用程序文件夾層次結構 17
1.8.2 可執行文件 17
1.8.3 Info.plist文件 17
1.8.4 圖標和默認圖像 19
1.8.5 NIB文件 20
1.8.6 應用程序束中不存在的文件 20
1.8.7 IPA歸檔 20
1.8.8 沙盒 20
1.9 編程範例 21
1.9.1 麵嚮對象編程 21
1.9.2 模型—視圖—控製器 22
1.10 小結 27
第2章 構建第一個項目 28
2.1 創建新項目 28
2.2 用模闆構建Hello World應用程序 29
2.2.1 創建新項目 29
2.2.2 Project窗口 30
2.2.3 Detail窗格 31
2.2.4 編輯器窗口 32
2.2.5 查看項目 32
2.2.6 打開視圖控製器.xib 33
2.2.7 編輯視圖 34
2.2.8 運行應用程序 34
2.3 使用模擬器 35
2.4 極簡單的Hello World 36
2.4.1 瀏覽SDK API 38
2.4.2 將Interface Builder文件轉換成Objective-C代碼 39
2.5 使用調試器 41
2.5.1 設置斷點 41
2.5.2 打開調試器 41
2.5.3 運行程序 41
2.5.4 查看標簽 42
2.5.5 設置另一個斷點 42
2.5.6 使用文本消息 43
2.5.7 移動Clear Log按鈕 43
2.5.8 啓用Zombie 44
2.6 內存管理 45
2.6.1 泄漏 45
2.6.2 緩存 45
2.7 秘訣:使用Instruments檢測內存泄漏 46
2.8 秘訣:使用Instruments監視緩存對象的內存分配 48
2.9 使用Clang靜態分析器 50
2.10 針對iPhone進行構建 51
2.10.1 安裝開發配置 51
2.10.2 編輯應用程序標識符 51
2.10.3 設置Code Signing Identity 52
2.10.4 編譯和運行Hello World應用程序 53
2.10.5 對編譯後的應用程序簽名 53
2.11 從Xcode到iPhone:Organizer Interface 54
2.11.1 Projects and Sources列錶 54
2.11.2 Devices列錶 55
2.11.3 iPhone Development Tools列錶 55
2.11.4 Summary選項卡 55
2.11.5 Console選項卡 56
2.11.6 Crash Logs選項卡 56
2.11.7 Screenshot選項卡 57
2.12 使用編譯器指令 57
2.12.1 獲得特定於iPhone的定義 58
2.12.2 運行時檢查 58
2.12.3 記憶標記 59
2.12.4 摺疊方法 60
2.13 針對發布進行構建 60
2.14 清除構建 61
2.14.1 針對App Store進行編譯 62
2.14.2 調試App Store上傳 63
2.15 針對臨時發布進行構建 64
2.15.1 注冊設備 64
2.15.2 構建臨時配置 64
2.15.3 在項目中添加授權文件 64
2.15.4 在設置中添加授權文件 64
2.15.5 構建臨時應用程序 65
2.15.6 為臨時發布添加圖片 65
2.16 定製Xcode標識 66
2.17 創建自定義Xcode模闆 66
2.17.1 覆蓋com.yourcompany 67
2.17.2 構建其他模闆 67
2.18 並排查看代碼 68
2.19 小結 69
第3章 Objective-C訓練營 70
3.1 Objective-C編程語言 70
3.2 類與對象 70
3.2.1 創建對象 72
3.2.2 內存分配 72
3.2.3 釋放內存 73
3.3 方法、消息和選擇器 73
3.3.1 動態類型檢查 74
3.3.2 繼承方法 75
3.3.3 聲明方法 76
3.3.4 實現方法 76
3.3.5 類方法 78
3.3.6 快速枚舉 78
3.4 類層次結構 79
3.5 日誌信息 79
3.6 屬性 81
3.6.1 點錶示法 81
3.6.2 屬性與內存管理 81
3.6.3 創建屬性 82
3.6.4 創建自定義的取值方法和賦值方法 83
3.6.5 屬性的特性 84
3.7 簡單的內存管理 85
3.7.1 創建對象 85
3.7.2 創建自動釋放的對象 86
3.7.3 自動釋放對象的生命周期 87
3.7.4 保留自動釋放的對象 87
3.7.5 已保留屬性 87
3.7.6 高保留計數 89
3.7.7 創建對象的其他方式 90
3.7.8 釋放對象 91
3.8 創建單例 93
3.9 類彆(擴展類) 93
3.10 協議 94
3.10.1 定義協議 95
3.10.2 閤並協議 95
3.10.3 增加迴調 95
3.10.4 聲明可選迴調 96
3.10.5 實現可選迴調 96
3.10.6 符閤協議 97
3.11 Foundation類 97
3.11.1 字符串 98
3.11.2 數字與日期 101
3.11.3 集閤 103
3.12 補充內容:消息轉發 107
3.12.1 實現消息轉發 108
3.12.2 使用轉發消息 109
3.12.3 思路整理 109
3.12.4 超級簡單的轉發 110
3.13 小結 110
第4章 設計界麵 111
4.1 UIView和UIWindow 111
4.1.1 顯示數據的視圖 111
4.1.2 做齣選擇的視圖 112
4.1.3 控件 112
4.1.4 錶格和拾取器 113
4.1.5 欄 113
4.1.6 進度與活動 114
4.2 UIViewController 114
4.2.1 UIViewController 114
4.2.2 UINavigationController 115
4.2.3 UITabBarController 115
4.2.4 錶格控製器 115
4.2.5 地址簿控製器 116
4.2.6 UIImagePickerController 116
4.2.7 郵件撰寫 116
4.2.8 GKPeerPickerController 116
4.2.9 Media Player控製器 117
4.3 視圖設計幾何學 117
4.3.1 狀態欄 117
4.3.2 導航欄、工具欄和選項卡欄 118
4.3.3 鍵盤和拾取器 119
4.3.4 文本字段 120
4.3.5 UIScreen類 120
4.4 構建界麵 120
4.5 實戰演練:使用IB構建溫度單位轉換器 121
4.5.1 新建項目 121
4.5.2 添加媒體 121
4.5.3 Interface Builder 121
4.5.4 編輯導航欄 122
4.5.5 替換主視圖 123
4.5.6 啓用仿真元素 123
4.5.7 創建圖像背景 123
4.5.8 添加標簽和視圖 123
4.5.9 測試界麵 124
4.5.10 添加齣口和動作 124
4.5.11 檢查新類頭 125
4.5.12 添加連接 126
4.5.13 獲取紫色 126
4.5.14 定義轉換方法 127
4.5.15 運行應用程序 127
4.6 實戰演練:手動構建溫度單位轉換器界麵 127
4.7 實戰演練:創建混閤轉換器 130
4.7.1 清理基本模闆 131
4.7.2 通過.xib添加新視圖控製器類 131
4.7.3 設計界麵 131
4.7.4 編輯視圖控製器實現 132
4.7.5 編輯main.m 132
4.7.6 運行應用程序 133
4.8 實戰演練:直接從代碼加載.xib文件 133
4.8.1 清理.xib 134
4.8.2 更新loadView 134
4.9 針對鏇轉進行設計 134
4.10 啓用鏇轉 135
4.11 自動調整大小 136
4.11.1 自動調整大小示例 136
4.11.2 評估自動調整大小選項 138
4.12 移動視圖 138
4.13 交換視圖 141
4.14 補充內容:6個有用的Interface Builder技巧 142
4.15 小結 143
第5章 使用視圖控製器 144
5.1 使用導航控製器開發 144
5.1.1 設置導航控製器 144
5.1.2 推入和彈齣視圖控製器 145
5.1.3 導航項類 145
5.1.4 模態演示 146
5.2 實用工具函數 146
5.3 秘訣:構建一個簡單的雙項菜單 147
5.4 秘訣:添加一個分段控件 149
5.5 秘訣:在視圖控製器之間導航 150
5.6 秘訣:使用創意彈齣選項 152
5.6.1 加載一個視圖控製器數組 152
5.6.2 推入臨時視圖 152
5.7 秘訣:演示一個自定義模態信息視圖 153
5.8 秘訣:選項卡欄 155
5.9 秘訣:記住選項卡狀態 157
5.10 補充點:Interface Builder和選項卡欄控製器 160
5.11 小結 161
第6章 組閤視圖和動畫 162
6.1 視圖層次結構 162
6.2 秘訣:建立視圖層次結構樹 163
6.3 秘訣:查詢子視圖 164
6.4 管理子視圖 166
6.4.1 添加子視圖 166
6.4.2 重新排序和刪除子視圖 166
6.4.3 視圖迴調 166
6.5 秘訣:標記和檢索視圖 167
6.6 秘訣:命名視圖 168
6.7 視圖的幾何特徵 172
6.7.1 框架 172
6.7.2 變換 173
6.7.3 坐標係 173
6.8 秘訣:視圖框架的處理 173
6.8.1 調整大小 174
6.8.2 CGRect和中心 175
6.8.3 其他實用工具方法 176
6.9 秘訣:移動帶邊界的視圖到任意位置 179
6.10 秘訣:視圖變形 180
6.11 顯示和交互特性 183
6.12 UIView動畫 183
6.12.1 建立UIView動畫塊 184
6.12.2 動畫迴調 184
6.13 秘訣:視圖的淡入和淡齣 185
6.14 秘訣:視圖交換 186
6.15 秘訣:翻轉視圖 187
6.16 秘訣:使用Core Animation Transitions 188
6.17 秘訣:一般的Core Animation調用 190
6.18 翻頁過渡 192
6.19 秘訣:當視圖顯示時反彈視圖 193
6.20 秘訣:圖像視圖動畫 195
6.21 補充內容:給視圖添加映射 196
6.22 小結 199
第7章 圖像處理 201
7.1 秘訣:查找和加載圖像 201
7.1.1 讀取圖像數據 201
7.1.2 加載圖像文件 203
7.2 秘訣:從iPhone相冊訪問照片 205
7.2.1 使用圖像拾取器 206
7.2.2 添加2.x支持 206
7.2.3 添加3.1支持 206
7.2.4 拾取視頻 206
7.3 秘訣:選擇和定製相冊中的圖像 208
7.4 秘訣:拍攝照片並將照片寫到相冊上 210
7.5 秘訣:將圖片保存到Documents文件夾 212
7.6 秘訣:通過電子郵件發送圖片 213
7.7 秘訣:捕捉定時拍攝的照片 214
7.8 秘訣:使用定製攝像頭覆蓋圖 216
7.9 秘訣:在可滾動視圖中顯示圖像 218
7.10 秘訣:創建多圖像分頁滾動 220
7.11 秘訣:從頭開始創建新圖像 221
7.12 秘訣:構建圖像縮略圖 224
7.13 調整照片方嚮 227
7.14 捕捉屏幕截圖 229
7.15 秘訣:直接處理位圖 230
7.15.1 在位圖上下文中繪製 230
7.15.2 應用圖像處理 232
7.15.3 圖像處理實況 233
7.16 補充內容:灰度模式 236
7.17 小結 237
第8章 手勢和觸摸 238
8.1 觸摸 238
8.1.1 階段 238
8.1.2 觸摸和視圖方法 239
8.1.3 觸摸視圖 239
8.1.4 多點觸摸 240
8.2 秘訣:添加一個簡單直觀的操作界麵 240
8.3 秘訣:限製移動 241
8.4 秘訣:測試觸摸 242
8.5 秘訣:測試位圖上的觸摸 243
8.6 秘訣:嚮直接操作界麵添加持久性 246
8.6.1 存儲狀態 246
8.6.2 恢復狀態 247
8.7 秘訣:通過歸檔實現持久性 248
8.8 秘訣:添加撤銷支持 250
8.8.1 創建撤銷管理器 250
8.8.2 子視圖撤銷支持 250
8.8.3 使用導航欄 250
8.8.4 注冊撤銷 251
8.9 秘訣:添加晃動控製的撤銷支持 252
8.9.1 添加撤銷和恢復的動作名稱 253
8.9.2 提供晃動以編輯支持 253
8.9.3 設置第一個響應程序 253
8.10 秘訣:屏幕繪圖 254
8.11 秘訣:綫的計算 255
8.12 秘訣:檢測圓形 257
8.13 秘訣:多點觸摸 259
8.14 秘訣:區分手勢 260
8.15 補充內容:交互式調整大小和鏇轉 264
8.16 小結 269
第9章 構建和使用控件 270
9.1 UIControl類 270
9.1.1 控件種類 270
9.1.2 控件事件 270
9.2 按鈕 272
9.3 在Interface Builder中添加按鈕 273
9.3.1 樣式 273
9.3.2 連接按鈕與動作 274
9.3.3 假按鈕 275
9.4 在Xcode中構建定製按鈕 275
9.5 多行按鈕文本 277
9.6 嚮按鈕添加動畫元素 277
9.7 秘訣:為按鈕響應製作動畫效果 278
9.8 秘訣:使用開關 279
9.9 秘訣:添加定製滑塊縮略圖 281
9.9.1 定製UISlider 281
9.9.2 增加效能 282
9.10 秘訣:創建一個可兩次點擊的分段控件 286
9.11 秘訣:子類化UIControl 287
9.11.1 跟蹤觸摸 288
9.11.2 分派事件 288
9.12 秘訣:關閉UITextField鍵盤 290
9.12.1 文本特徵屬性 291
9.12.2 其他文本字段屬性 291
9.13 秘訣:關閉UITextView鍵盤 292
9.14 秘訣:構建更好的文本編輯器 294
9.15 秘訣:文本輸入篩選 296
9.16 秘訣:添加一個頁麵指示器控件 298
9.17 秘訣:創建一個可定製的分頁滾動條 300
9.18 秘訣:構建工具欄 304
9.18.1 在Xcode中構建工具欄 305
9.18.2 工具欄提示 307
9.19 補充內容:智能標簽 307
9.20 小結 308
第10章 提醒用戶 309
10.1 通過警告框直接與用戶對話 309
10.1.1 構建簡單的警告框 309
10.1.2 警告框委托 310
10.1.3 顯示警告框 311
10.1.4 警告框類 311
10.2 秘訣:無按鈕警告框 312
10.3 秘訣:使用run循環創建模態警告框 313
10.4 秘訣:要求用戶進行文本輸入 316
10.5 秘訣:對警告框視圖使用可變參數 318
10.6 秘訣:展示簡單的菜單 319
10.7 秘訣:在動作錶中顯示文本 321
10.8 “Please Wait”:嚮用戶顯示進度 321
10.9 秘訣:構建UIProgressView 322
10.10 構建定製覆蓋圖 324
10.11 秘訣:可點擊的覆蓋圖 326
10.12 秘訣:可調整方嚮的滾動警告框 327
10.13 秘訣:使用網絡活動指示器 329
10.14 秘訣:給應用程序貼標記 329
10.15 秘訣:簡單的音頻警告 330
10.15.1 係統聲音 330
10.15.2 震動 331
10.15.3 警告 331
10.15.4 延遲 332
10.16 補充內容:展示音量警告框 333
10.17 小結 333
第11章 創建和管理錶格視圖 335
11.1 UITableView和UITableView- Controller簡介 335
11.2 秘訣:實現最基本的錶格 337
11.2.1 填充錶格 337
11.2.2 數據源方法 338
11.2.3 重用單元格 338
11.2.4 字體錶格示例 338
11.3 秘訣:更改錶格的背景色 340
11.4 秘訣:創建錶格圖像後擋闆 341
11.5 秘訣:單元格類型研究 343
11.6 秘訣:使用Interface Builder構建定製單元格 344
11.6.1 創建定製單元格的技巧 346
11.6.2 增加定製選擇特性 347
11.7 秘訣:單元格顔色交替 347
11.8 秘訣:使用內置控件構建定製單元格 348
11.9 秘訣:記住定製單元格的控製狀態 350
11.10 秘訣:創建勾選的錶格單元格 353
11.11 移除單元格選中時的高亮顯示狀態 354
11.12 秘訣:處理展開配件 355
11.13 秘訣:刪除單元格 357
11.13.1 顯示刪除控件 357
11.13.2 隱藏刪除控件 357
11.13.3 處理刪除請求 357
11.13.4 滑動單元格 358
11.13.5 添加單元格 358
11.14 秘訣:對單元格重新排序 360
11.15 秘訣:嚮錶格添加撤銷支持 361
11.15.1 支持“晃動以編輯” 362
11.15.2 添加Undo和Redo按鈕 362
11.15.3 執行撤銷和恢復 363
11.15.4 準備錶格撤銷操作 364
11.16 秘訣:錶格排序 366
11.17 秘訣:搜索錶格 367
11.17.1 構建搜索顯示控製器 367
11.17.2 構建可搜索數據源方法 368
11.17.3 委托方法 369
11.18 秘訣:處理分段 370
11.18.1 創建基於分段的數據結構 370
11.18.2 分段計數和行計數 371
11.18.3 返迴單元格 371
11.18.4 創建標題 372
11.18.5 創建分段索引 373
11.18.6 分段委托 374
11.19 秘訣:創建分組錶格 374
11.20 秘訣:定製錶頭和腳注 375
11.21 秘訣:創建帶有各種單元格類型和高度的分組錶格 377
11.22 秘訣:構建多輪錶格 380
11.23 秘訣:使用基於視圖的選取器 383
11.24 秘訣:使用UIDatePicker 385
11.25 補充內容:格式化日期 388
11.26 小結 390
第12章 使用GameKit和Bonjour進行連接 391
12.1 秘訣:創建基本的GameKit服務 391
12.1.1 GameKit藍牙限製 391
12.1.2 設備限製 392
12.1.3 會話 392
12.1.4 服務器、客戶端、對等機 393
12.1.5 對等機連接過程 393
12.1.6 發送和接收數據 395
12.1.7 狀態更改 396
12.1.8 創建GameKit輔助類 397
12.2 秘訣:後颱監控 402
12.3 秘訣:通過GameKit發送復雜數據 403
12.4 秘訣:GameKit語音聊天 405
12.4.1 將GameKit作為中間人 405
12.4.2 實現語音聊天 406
12.5 秘訣:使用Bonjour創建iPhone服務器 407
12.6 秘訣:為iPhone Bonjour服務創建Mac客戶端 411
12.7 秘訣:解決實際GameKit限製 414
12.7.1 使用iPhone粘貼闆 415
12.7.2 存儲數據 415
12.7.3 檢索數據 415
12.7.4 可靠的粘貼闆 415
12.8 秘訣:通過BonjourHelper連接iPhone進行遊戲 418
12.8.1 注冊Bonjour名稱和端口 419
12.8.2 雙工連接 419
12.8.3 讀取數據 419
12.8.4 關閉連接 419
12.9 創建“在綫”GameKit連接 426
12.10 補充內容:掃描服務 428
12.11 小結 431
第13章 網絡連接 432
13.1 秘訣:檢查網絡狀態 432
13.2 秘訣:為可達性擴展UIDevice類 433
13.3 秘訣:掃描連接變化 436
13.4 秘訣:重新獲得IP和主機信息 439
13.5 秘訣:檢查站點可用性 441
13.6 秘訣:同步下載 443
13.7 秘訣:異步下載 445
13.8 秘訣:應對身份驗證的挑戰 450
13.9 秘訣:使用密鑰鏈存儲敏感數據 451
13.9.1 密鑰鏈包裝器 451
13.9.2 密鑰鏈持久性 452
13.10 秘訣:通過POST上傳 453
13.11 秘訣:上傳數據 456
13.12 秘訣:在應用程序之間共享密鑰鏈 459
13.13 秘訣:將XML轉換為樹 460
13.13.1 構建解析樹 461
13.13.2 使用樹結果 462
13.13.3 分解樹 464
13.14 秘訣:構建一個簡單的基於Web的服務器 465
13.15 補充內容:FTPHelper 468
13.16 小結 469
第14章 設備能力 471
14.1 秘訣:訪問核心設備信息 471
14.2 添加設備功能限製 472
14.3 秘訣:重新獲得更多設備信息 473
14.4 秘訣:監控iPhone的電池狀態 475
14.5 秘訣:啓用和禁用接近傳感器 476
14.6 秘訣:使用加速度將方嚮定位為“嚮上” 477
14.7 秘訣:使用加速度移動屏幕上的對象 479
14.8 秘訣:檢測設備方嚮 481
14.9 秘訣:利用運動事件檢測晃動 482
14.10 秘訣:直接從加速計檢測晃動 484
14.11 補充內容:檢查可用的磁盤空間 487
14.12 小結 487
第15章 音頻、視頻和媒體工具 488
15.1 秘訣:使用AVAudioPlayer播放音頻 488
15.1.1 初始化音頻播放器 488
15.1.2 監控音量水平 489
15.1.3 迴放進度和拖曳播放 490
15.1.4 捕獲迴放結束 490
15.2 秘訣:循環播放音頻 494
15.3 秘訣:處理音頻中斷 496
15.4 秘訣:忽略休眠的音頻 497
15.5 秘訣:錄製音頻 499
15.6 秘訣:使用音頻隊列錄製音頻 503
15.7 秘訣:使用媒體播放器播放視頻 508
15.8 秘決:錄製視頻 510
15.9 秘訣:選取和編輯視頻 512
15.10 秘訣:使用MPMediaPicker- Controller選取音頻 514
15.11 秘訣:創建媒體查詢 517
15.11.1 建立查詢 517
15.11.2 使用謂詞 518
15.11.3 解決速度問題 519
15.12 秘訣:使用MPMusicPlayer- Controller 520
15.13 補充內容:額外的電影播放器屬性 524
15.14 小結 524
第16章 推送通知 525
16.1 推送通知簡介 525
16.1.1 推送技術的工作原理 526
16.1.2 多個提供商支持 526
16.1.3 安全 527
16.1.4 推送的局限性 527
16.2 準備推送 527
16.2.1 生成一個應用程序標識符 528
16.2.2 生成SSL證書 528
16.2.3 推送服務特有的準備文件 530
16.3 注冊應用程序 530
16.3.1 檢索設備令牌 531
16.3.2 處理令牌請求錯誤 532
16.3.3 響應通知 532
16.4 秘訣:推送客戶端框架 533
16.5 構建通知的有效內容 538
16.5.1 本地化警告 539
16.5.2 從字典轉換為JSON 539
16.5.3 自定義數據 540
16.5.4 啓動時接收數據 540
16.6 秘訣:發送通知 541
16.7 秘訣:實際使用推送服務 545
16.8 反饋服務 549
16.9 推送服務設計 550
16.10 小結 550
第17章 使用Core Location和MapKit 552
17.1 Core Location的工作原理 552
17.1.1 GPS定位 552
17.1.2 Skyhook Wi-Fi定位 552
17.1.3 蜂窩基站定位技術 553
17.1.4 因特網提供商定位技術 553
17.1.5 混閤使用這些方法 553
17.2 秘訣:Core Location簡介 554
17.3 秘訣:跟蹤速率 556
17.4 秘訣:計算速率和距離 557
17.5 秘訣:使用heading值跟蹤北嚮 559
17.6 秘訣:逆嚮地理編碼 561
17.7 秘訣:查看位置 562
17.8 秘訣:用戶位置注解 565
17.9 秘訣:創建地圖注解 567
17.9.1 創建、添加和刪除注解 568
17.9.2 注解視圖 568
17.9.3 自定義注解視圖 569
17.9.4 響應注解按鈕輕擊事件 570
17.10 補充內容:地理編碼 574
17.11 小結 577
第18章 連接地址簿 578
18.1 秘訣:使用地址簿 578
18.1.1 地址簿UI 578
18.1.2 地址簿 578
18.1.3 檢索和設置ABRecord字符串 579
18.1.4 簡單的日期屬性 581
18.1.5 獲取和設置多值記錄屬性 581
18.1.6 地址和即時消息屬性 584
18.1.7 使用地址簿圖像 586
18.1.8 創建、添加和刪除記錄 586
18.1.9 搜索聯係人 587
18.1.10 處理分組 588
18.1.11 ABContact、ABGroup和ABContactsHelper 590
18.2 秘訣:搜索地址簿 590
18.3 秘訣:訪問圖像數據 592
18.4 秘訣:選取人員 594
18.5 秘訣:限製聯係人選取器屬性 595
18.6 秘訣:添加新聯係人 597
18.7 秘訣:修改現有聯係人 599
18.8 秘訣:ABUnknownPersonView-Controller 600
18.9 補充內容:添加隨機的聯係人拼圖 602
18.10 小結 604
第19章 使用Core Data 605
19.1 Core Data簡介 605
19.1.1 創建和編輯模型文件 605
19.1.2 生成頭文件 606
19.1.3 創建Core Data上下文 607
19.1.4 添加對象 608
19.1.5 查詢數據庫 610
19.1.6 檢測更改 611
19.1.7 刪除對象 611
19.2 秘訣:將Core Data用作錶格數據源 613
19.3 秘訣:搜索錶與Core Data 616
19.4 秘訣:集成Core Data錶與實時數據編輯 618
19.5 秘訣:使用Core Data實現撤銷—重做支持 620
19.6 小結 622
第20章 StoreKit:應用程序內購買 623
20.1 StoreKit入門 623
20.2 創建測試賬戶 625
20.3 創建應用程序內購買商品 625
20.3.1 填寫定價部分 626
20.3.2 添加商品詳細信息 627
20.3.3 提交購買GUI屏幕截圖 628
20.3.4 開發人員批準 628
20.4 提交應用程序 628
20.5 構建GUI 629
20.6 購買商品 631
20.6.1 注銷iTunes賬戶以進行測試 631
20.6.2 購買之後重新獲得編程控製 631
20.6.3 注冊購買商品 632
20.6.4 恢復購買商品 633
20.6.5 購買多個商品 634
20.6.6 處理注冊購買過程中的延遲 634
20.7 驗證收據 634
20.8 小結 636
第21章 輔助功能以及其他iPhone OS服務 637
21.1 將VoiceOver輔助功能添加到應用程序 637
21.1.1 Interface Builder中的輔助功能 637
21.1.2 在代碼中使用輔助功能 639
21.1.3 使用模擬器進行測試 640
21.1.4 在iPhone上測試輔助功能 640
21.2 秘訣:添加自定義設置包 641
21.2.1 Settings應用程序 642
21.2.2 避免敏感信息 643
21.2.3 Settings模式 643
21.2.4 定義設置包 643
21.2.5 設置和用戶 647
21.2.6 檢查用戶默認值 647
21.3 秘訣:創建基於URL的服務 648
21.3.1 使用URL模式 648
21.3.2 服務缺點 648
21.3.3 交叉促銷 649
21.3.4 注冊模式:聲明URL 649
21.3.5 注冊模式:添加處理程序方法 649
21.3.6 使調用應用程序恢復控製 650
21.3.7 實現自定義模式 651
21.4 小結 652
附錄A Info.plist密鑰 653
· · · · · · (
收起)