內容簡介
《iPhone開發入門經典(第2版)》基於Apple最新發布的iOS 4.0編寫,循序漸進地介紹了從事iPhone開發所需的基本知識,包括使用Xcode、Interface Builder、Objective-C和Cocoa Touch等開發工具,設計及美化用戶界面,讀寫和顯示數據,使用表視圖導航結構化數據,創建可旋轉和調整大小的用戶界面,播放和錄製多媒體,使用地圖和定位功能,使用加速計和陀螺儀檢測運動和朝向,創建通用應用程式,編寫支持後台處理的應用程式,調試、最佳化和發布應用程式等主題。
《iPhone開發入門經典(第2版)》通過簡潔的語言和詳細的步驟,幫助讀者迅速掌握開發iPhone應用程式所需的基本知識。《iPhone開發入門經典(第2版)》適合沒有任何編程經驗的新手閱讀,也可供有志於從事iPhone開發的人員參考。
目錄
目 錄
第1章 為開發準備好系統和iPhone 1
1.1 歡迎進入iOS平台 1
1.1.1 顯示屏和圖形 1
1.1.2 應用程式資源約束 3
1.1.3 連線性 3
1.1.4 輸入和反饋 3
1.2 成為iOS開發人員 4
1.2.1 加入Apple開發人員計畫 4
1.2.2 安裝iPhone開發工具 7
1.3 創建開發供應配置檔案 8
1.3.1 什麼是開發供應配置檔案 8
1.3.2 生成並安裝開發供應配置檔案 8
1.3.3 使用iPhone應用程式測試配置檔案 15
1.4 開發技術概述 17
1.4.1 Apple開發套件 17
1.4.2 Objective-C 17
1.4.3 CoCoa Touch 18
1.4.4 模型-視圖-控制器 18
1.5 總結 18
1.6 問與答 18
1.7 作業 19
1.7.1 測驗 19
1.7.2 答案 19
1.7.3 練習 19
第2章 Xcode和iPhone模擬器簡介 20
2.1 使用Xcode 20
2.1.1 創建和管理項目 21
2.1.2 刪除檔案和資源 24
2.1.3 編輯和導航代碼 25
2.1.4 生成應用程式 29
2.1.5 項目屬性 32
2.2 使用iPhone模擬器 34
2.2.1 在模擬器中啟動應用程式 34
2.2.2 模擬多點觸摸事件 35
2.2.3 旋轉iPhone 36
2.2.4 模擬其他情況 37
2.3 進一步探索 37
2.4 總結 38
2.5 問與答 38
2.6 作業 38
2.6.1 測驗 38
2.6.2 答案 39
2.6.3 練習 39
第3章 探索Apple平台語言Objective-C 40
3.1 面向對象編程和Objective-C 40
3.1.1 什麼是面向對象編程? 41
3.1.2 面向對象編程術語 42
3.1.3 什麼是Objective-C? 43
3.2 探索Objective-C檔案結構 43
3.2.1 頭檔案/接口檔案 44
3.2.2 實現檔案 47
3.2.3 自動生成的結構 49
3.3 Objective-C編程基礎 49
3.3.1 聲明變數 49
3.3.2 分配、初始化和釋放對象 50
3.3.3 使用方法及傳送訊息 51
3.3.4 表達式和決策 53
3.4 記憶體管理 57
3.4.1 釋放對象 57
3.4.2 使用autorelease方法 57
3.4.3 保留對象 58
3.4.4 在dealloc中釋放實例變數 58
3.4.5 釋放規則 58
3.5 進一步探索 59
3.6 總結 59
3.7 問與答 59
3.8 作業 60
3.8.1 測驗 60
3.8.2 答案 60
3.8.3 練習 60
第4章 Cocoa Touch內幕 61
4.1 Cocoa Touch是什麼? 61
4.1.1 冷靜面對大量的功能 62
4.1.2 年輕而成熟 62
4.2 探索iPhone技術層 63
4.2.1 Cocoa Touch層 63
4.2.2 多媒體層 64
4.2.3 核心服務層 65
4.2.4 核心OS層 66
4.3 跟蹤iPhone應用程式的生命周期 66
4.4 Cocoa基礎 68
4.4.1 核心應用程式類 68
4.4.2 數據類型類 69
4.4.3 界面類 72
4.5 使用Xcode探索iOS框架 73
4.5.1 Xcode文檔 74
4.5.2 快速幫助 75
4.6 總結 76
4.7 問與答 77
4.8 作業 77
4.8.1 測驗 77
4.8.2 答案 77
4.8.3 練習 77
第5章 探索Interface Builder 78
5.1 了解Interface Builder 78
5.1.1 Interface Builder採用的方法 79
5.1.2 剖析Interface Builder XIB檔案 79
5.2 創建用戶界面 82
5.2.1 對象庫 82
5.2.2 布局工具 83
5.3 定製界面外觀 86
5.3.1 使用屬性檢查器 86
5.3.2 設定輔助功能屬性 87
5.3.3 測試界面 88
5.4 連線到代碼 89
5.4.1 在Xcode中啟動Interface Builder 89
5.4.2 實現概述 90
5.4.3 輸出口和操作 90
5.4.4 對象身份 93
5.5 進一步探索 94
5.6 總結 94
5.7 問與答 95
5.8 作業 95
5.8.1 測驗 95
5.8.2 答案 95
5.8.3 練習 96
第6章 模型-視圖-控制器應用程式設計 97
6.1 了解設計模式模型-視圖-控制器 97
6.1.1 製作意大利麵條 98
6.1.2 使用MVC將應用程式設計結構化 98
6.2 Xcode和Interface Builder如何實現MVC 99
6.2.1 視圖 99
6.2.2 視圖控制器 99
6.2.3 數據模型 100
6.3 使用模板View-Based Application 101
6.3.1 實現概述 101
6.3.2 創建項目 102
6.3.3 在視圖控制器中創建輸出口和操作 105
6.3.4 創建視圖 106
6.3.5 實現視圖控制器邏輯 110
6.3.6 釋放記憶體 111
6.3.7 生成應用程式 111
6.4 進一步探索 112
6.5 總結 112
6.6 問與答 113
6.7 作業 113
6.7.1 測驗 113
6.7.2 答案 113
6.7.3 練習 113
第7章 使用文本、鍵盤和按鈕 114
7.1 基本用戶輸入和輸出 114
7.1.1 按鈕 114
7.1.2 文本框和文本視圖 115
7.1.3 標籤 115
7.2 使用文本欄位、文本視圖和按鈕 116
7.2.1 實現概述 116
7.2.2 創建項目 116
7.2.3 創建輸出口和操作 117
7.2.4 添加文本框 118
7.2.5 添加文本視圖 122
7.2.6 創建風格獨特的按鈕 125
7.2.7 隱藏鍵盤 130
7.2.8 實現視圖控制器邏輯 132
7.2.9 釋放對象 133
7.2.10 生成應用程式 133
7.3 進一步探索 134
7.4 總結 134
7.5 問與答 135
7.6 作業 135
7.6.1 測驗 135
7.6.2 答案 135
7.6.3 練習 135
第8章 處理圖像、動畫和滑塊 136
8.1 用戶輸入和輸出 136
8.1.1 滑塊 136
8.1.2 圖像視圖 137
8.2 創建並管理圖像動畫和滑塊 137
8.2.1 實現概述 137
8.2.2 創建項目 138
8.2.3 添加動畫資源 138
8.2.4 準備輸出口和操作 138
8.2.5 添加圖像視圖 140
8.2.6 添加滑塊 143
8.2.7 完成界面的創建 145
8.2.8 實現視圖控制器邏輯 146
8.2.9 釋放對象 148
8.2.10 生成應用程式 149
8.3 進一步探索 149
8.4 總結 150
8.5 問與答 150
8.6 作業 150
8.6.1 測驗 150
8.6.2 答案 150
8.6.3 練習 151
第9章 使用高級界面對象和視圖 152
9.1 再談用戶輸入和輸出 152
9.1.1 開關 152
9.1.2 分段控制項 153
9.1.3 Web視圖 154
9.1.4 可滾動的視圖 155
9.2 使用開關、分段控制項和Web視圖 155
9.2.1 實現概述 156
9.2.2 創建項目 156
9.2.3 創建輸出口和操作 156
9.2.4 添加分段控制項 157
9.2.5 添加開關 160
9.2.6 添加Web視圖 162
9.2.7 完成界面 164
9.2.8 實現視圖控制器邏輯 165
9.2.9 釋放對象 168
9.2.10 生成應用程式 168
9.3 使用可滾動視圖 168
9.3.1 實現概述 169
9.3.2 創建項目 169
9.3.3 創建輸出口 169
9.3.4 添加可滾動視圖 170
9.3.5 實現滾動行為 172
9.3.6 釋放對象 172
9.3.7 生成應用程式 172
9.4 進一步探索 173
9.5 總結 173
9.6 問與答 173
9.7 作業 174
9.7.1 測驗 174
9.7.2 答案 174
9.7.3 練習 174
第10章 引起用戶注意 175
10.1 探索提醒用戶的方法 175
10.1.1 準備通知項目檔案 176
10.1.2 創建通知項目的界面 177
10.1.3 連線到輸出口和操作 178
10.2 生成提醒 179
10.2.1 顯示簡單提醒 179
10.2.2 創建多選項提醒 181
10.2.3 在提醒對話框中添加文本框 184
10.3 使用操作表 187
10.3.1 顯示操作表 187
10.3.2 修改操作表的外觀 189
10.3.3 對用戶按下操作表按鈕做出回響 189
10.4 使用提醒聲音和震動 190
10.4.1 系統聲音服務 190
10.4.2 播放聲音和提醒 191
10.4.3 震動iPhone 193
10.5 進一步探索 193
10.6 總結 193
10.7 問與答 194
10.8 作業 194
10.8.1 測驗 194
10.8.2 答案 194
10.8.3 練習 195
第11章 使用選擇器選擇多種值 196
11.1 了解選擇器 196
11.1.1 日期選擇器 197
11.1.2 選擇器視圖 197
11.2 使用日期選擇器 199
11.2.1 實現概述 199
11.2.2 創建項目 199
11.2.3 添加日期選擇器 201
11.2.4 完成界面 202
11.2.5 實現視圖控制器邏輯 203
11.3 實現自定義選擇器視圖 206
11.3.1 實現概述 206
11.3.2 創建項目 207
11.3.3 添加選擇器視圖 208
11.3.4 完成界面 209
11.3.5 向選擇器提供數據 210
11.3.6 對用戶在選擇器中選擇值做出反應 214
11.3.7 微調選擇器UI 217
11.4 進一步探索 221
11.5 總結 221
11.6 問與答 221
11.7 作業 222
11.7.1 測驗 222
11.7.2 答案 222
11.7.3 練習 222
第12章 使用工具列和選項卡欄實現多個視圖 223
12.1 探索單視圖應用程式和多視圖應用程式 223
12.1.1 多視圖的好處 224
12.1.2 靜態界面元素 224
12.2 創建多視圖工具列應用程式 225
12.2.1 實現概述 225
12.2.2 創建項目 225
12.2.3 實例化視圖控制器 227
12.2.4 添加工具列控制項 229
12.3 創建多視圖選項卡欄應用程式 234
12.3.1 實現概述 234
12.3.2 創建項目 235
12.3.3 添加選項卡欄控制器 237
12.3.4 配置視圖控制器類 239
12.3.5 實現AreaView視圖 239
12.3.6 實現VolumeView視圖 244
12.3.7 實現SummaryView視圖 248
12.4 進一步探索 250
12.5 總結 251
12.6 問與答 251
12.7 作業 251
12.7.1 測驗 251
12.7.2 答案 252
12.7.3 練習 252
第13章 使用表視圖顯示和導航數據 253
13.1 了解表視圖和導航控制器 253
13.1.1 表視圖 253
13.1.2 導航控制器 255
13.2 創建簡單的表視圖應用程式 255
13.2.1 實現概述 256
13.2.2 準備視圖控制器 256
13.2.3 給表視圖提供數據 259
13.2.4 回響行觸摸事件 264
13.3 創建基於導航的應用程式 265
13.3.1 實現概述 266
13.3.2 創建項目 266
13.3.3 給應用程式提供數據 267
13.3.4 創建詳細視圖 271
13.3.5 實現根表視圖控制器 273
13.3.6 處理導航事件 275
13.3.7 微調錶視圖 276
13.4 進一步探索 277
13.5 總結 278
13.6 問與答 278
13.7 作業 279
13.7.1 測驗 279
13.7.2 答案 279
13.7.3 練習 279
第14章 讀寫應用程式數據 280
14.1 設計方面的考慮 280
14.2 讀寫用戶默認設定 282
14.2.1 隱式首選項 282
14.2.2 實現系統設定 287
14.3 理解iPhone檔案系統沙箱 295
14.3.1 應用程式數據的存儲位置 295
14.3.2 檔案路徑 296
14.4 實現檔案系統存儲 297
14.4.1 創建項目 297
14.4.2 創建界面 300
14.4.3 添加另一個視圖控制器 303
14.4.4 實現應用程式的邏輯 305
14.4.5 實現對象歸檔 310
14.4.6 在FlashCards應用程式中歸檔 312
14.5 進一步探索 314
14.6 總結 314
14.7 問與答 315
14.8 作業 315
14.8.1 測驗 315
14.8.2 答案 315
14.8.3 練習 315
第15章 創建可旋轉及調整大小的用戶界面 316
15.1 可旋轉和調整大小的界面 316
15.1.1 啟用界面旋轉 316
15.1.2 設計可旋轉和調整大小的界面 318
15.2 使用Interface Builder創建可旋轉和調整大小的界面 319
15.2.1 創建項目 319
15.2.2 創建靈活的界面 320
15.3 旋轉時調整控制項的框架 323
15.3.1 創建項目 323
15.3.2 創建界面 324
15.3.3 實現調整框架的邏輯 327
15.4 旋轉時切換視圖 328
15.4.1 創建項目 329
15.4.2 創建界面 330
15.4.3 實現視圖切換邏輯 332
15.5 進一步探索 333
15.6 總結 334
15.7 問與答 334
15.8 作業 334
15.8.1 測驗 334
15.8.2 答案 334
15.8.3 練習 335
第16章 使用複雜的觸摸和手勢 336
16.1 多點觸摸手勢識別 336
16.2 使用手勢識別器 337
16.2.1 實現概述 337
16.2.2 創建項目 338
16.2.3 創建界面 340
16.2.4 實現輕按手勢識別器 342
16.2.5 實現輕掃手勢識別器 343
16.2.6 實現張合手勢識別器 344
16.2.7 實現旋轉手勢識別器 346
16.2.8 實現搖動識別器 348
16.3 進一步探索 349
16.4 總結 349
16.5 問與答 350
16.6 作業 350
16.6.1 測驗 350
16.6.2 答案 350
16.6.3 練習 350
第17章 檢測朝向和移動 351
17.1 理解iPhone運動硬體 351
17.1.1 加速計 352
17.1.2 陀螺儀 352
17.2 訪問朝向和運動數據 354
17.2.1 通過UIDevice請求朝向通知 354
17.2.2 使用Core Motion讀取加速計和陀螺儀數據 354
17.3 檢測朝向 356
17.3.1 創建項目 356
17.3.2 創建界面 357
17.3.3 回響朝向變化 358
17.3.4 判斷朝向 358
17.4 檢測傾斜和旋轉 360
17.4.1 創建項目 360
17.4.2 實現移動事件 363
17.5 進一步探索 367
17.6 總結 368
17.7 作業 368
17.7.1 測驗 368
17.7.2 答案 368
17.7.3 練習 368
第18章 使用多媒體 370
18.1 探索多媒體 370
18.1.1 Media Player框架 371
18.1.2 AV Foundation框架 371
18.1.3 圖像選擇器 372
18.2 創建用於練習使用多媒體的應用程式 372
18.2.1 實現概述 372
18.2.2 編輯項目檔案 372
18.2.3 創建應用程式界面 374
18.2.4 連線到輸出口和操作 375
18.3 使用電影播放器 375
18.3.1 添加Media Player框架 376
18.3.2 添加多媒體檔案 376
18.3.3 實現電影播放 377
18.3.4 執行清理工作 378
18.4 錄製和播放音頻 379
18.4.1 添加AV Foundation框架 380
18.4.2 實現錄音功能 380
18.4.3 控制錄音 381
18.4.4 控制音頻播放 382
18.4.5 執行清理工作 383
18.5 使用照片庫和相機 384
18.6 訪問並播放iPod庫 387
18.6.1 實現多媒體選擇器 387
18.6.2 實現音樂播放器 390
18.7 進一步探索 391
18.8 總結 392
18.9 問與答 392
18.10 作業 393
18.10.1 測驗 393
18.10.2 答案 393
18.10.3 練習 393
第19章 與其他應用程式互動 394
19.1 應用程式集成 394
19.1.1 地址簿 394
19.1.2 電子郵件 395
19.1.3 地圖功能 396
19.2 使用地址簿、電子郵件和地圖 397
19.2.1 實現概述 397
19.2.2 創建項目 398
19.2.3 創建應用程式UI 399
19.2.4 連線到輸出口和操作 400
19.2.5 訪問地址簿 400
19.2.6 使用地圖 405
19.2.7 使用Message UI 409
19.3 進一步探索 411
19.4 總結 411
19.5 問與答 412
19.6 作業 412
19.6.1 測驗 412
19.6.2 答案 412
19.6.3 練習 412
第20章 實現定位服務 413
20.1 理解Core Location 413
20.2 創建支持定位的應用程式 417
20.2.1 創建項目 417
20.2.2 創建用戶界面 418
20.2.3 實現位置管理器委託 420
20.3 理解磁性指南針 422
20.3.1 位置管理器航向 423
20.3.2 實現指南針航向 423
20.3.3 設定項目 424
20.3.4 修改用戶界面 425
20.3.5 請求並使用航向更新 426
20.4 進一步探索 429
20.5 總結 430
20.6 問與答 430
20.7 作業 430
20.7.1 測驗 430
20.7.2 答案 431
20.7.3 練習 431
第21章 創建支持後台處理的應用程式 432
21.1 理解iOS 4後台處理 432
21.1.1 後台處理類型 433
21.1.2 支持後台處理的應用程式的生命周期 434
21.2 禁用後台處理 436
21.3 處理後台掛起 436
21.4 實現本地通知 437
21.4.1 常用的通知屬性 438
21.4.2 創建和調度通知 438
21.5 使用任務特定的後台處理 440
21.5.1 修改應用程式Cupertion以支持在後台播放音頻 440
21.5.2 使用聲音指示前往庫珀蒂諾的方向 442
21.5.3 添加後台模式鍵 445
21.6 完成長時間運行的後台任務 446
21.6.1 創建項目 446
21.6.2 創建用戶界面 447
21.6.3 實現計數器邏輯 448
21.6.4 啟用後台任務處理 449
21.7 進一步探索 451
21.8 總結 451
21.9 問與答 451
21.10 作業 452
21.10.1 測驗 452
21.10.2 答案 452
21.10.3 練習 452
第22章 創建通用應用程式 453
22.1 開發通用應用程式 453
22.2 理解模板Window-based Application 454
22.2.1 通用應用程式的plist檔案 455
22.2.2 創建通用應用程式:方法1 456
22.2.3 創建通用應用程式:方法2 462
22.2.4 小結 467
22.3 其他通用應用程式工具 467
22.3.1 升級iPhone目標檔案 467
22.3.2 轉換界面 468
22.4 進一步探索 468
22.5 總結 469
22.6 問與答 469
22.7 作業 469
22.7.1 測驗 469
22.7.2 答案 470
22.7.3 練習 470
第23章 應用程式調試和最佳化 471
23.1 在Xcode中調試 471
23.1.1 使用NSLog進行調試 471
23.1.2 創建用於調試的項目 473
23.1.3 設定斷點及單步執行代碼 474
23.2 使用Instruments監視 481
23.2.1 跟蹤應用程式 481
23.2.2 可用的工具 485
23.3 使用Shark分析性能 486
23.3.1 連線到應用程式 486
23.3.2 理解性能分析結果 489
23.4 進一步探索 491
23.5 總結 491
23.6 問與答 492
23.7 作業 492
23.7.1 測驗 492
23.7.2 答案 492
23.7.3 練習 492
第24章 通過App Store發布應用程式 493
24.1 開發通用應用程式 493
24.1.1 創建圖示 494
24.1.2 定義設備功能需求 496
24.1.3 創建iPhone發布證書 497
24.1.4 設定App ID(束標識符) 499
24.1.5 創建發布供應配置檔案 499
24.1.6 配置項目以便發布 500
24.2 提交應用程式以便批准 503
24.2.1 準備應用程式配置檔案 503
24.2.2 上傳應用程式二進制檔案 507
24.3 推銷應用程式 508
24.3.1 使用iTunes Connect監視和管理銷售情況 509
24.3.2 利用網站和社交網路 510
24.3.3 更新應用程式 511
24.3.4 調整價格 512
24.3.5 使用iAds 512
24.4 其他發布方法 513
24.4.1 ad hoc部署 513
24.4.2 企業部署 514
24.5 總結 515
24.6 問與答 515
24.7 作業 515
24.7.1 測驗 515
24.7.2 答案 515
24.7.3 練習 516