第1章 為開發準備好係統和iOS設備 1
         1.1 歡迎進入iOS平颱 1
         1.1.1 iOS設備 1
         1.1.2 顯示屏和圖形 2
         1.1.3 應用程序資源約束 3
         1.1.4 連接性 4
         1.1.5 輸入和反饋 4
         1.2 成為iOS開發人員 5
         1.2.1 加入Apple開發人員計劃 5
         1.2.2 安裝Xcode 8
         1.3 創建並安裝開發供應配置文件 9
         1.3.1 什麼是開發供應配置文件 10
         1.3.2 配置用於開發的設備 10
         1.4 運行第一個iOS應用程序 13
         1.5 開發技術概述 15
         1.5.1 Apple開發工具 15
         1.5.2 Objective-C 15
         1.5.3 CoCoa Touch 16
         1.5.4 模型-視圖-控製器 16
         1.6 進一步探索 16
         1.7 小結 16
         1.8 問與答 16
         1.9 作業 17
         1.9.1 測驗 17
         1.9.2 答案 17
         1.9.3 練習 17
         第2章 Xcode和iOS模擬器簡介 18
         2.1 使用Xcode 18
         2.1.1 創建和管理項目 19
         2.1.2 編輯和導航代碼 28
         2.1.3 生成應用程序 36
         2.1.4 管理項目屬性 40
         2.1.5 設置支持的設備朝嚮 41
         2.1.6 設置狀態欄(iOS 6) 41
         2.1.7 應用程序圖標和啓動圖像 42
         2.2 使用iOS模擬器 44
         2.2.1 啓動應用程序 45
         2.2.2 模擬多點觸摸事件 46
         2.2.3 鏇轉模擬的設備 47
         2.2.4 模擬其他情況 47
         2.3 進一步探索 48
         2.4 小結 49
         2.5 問與答 49
         2.6 作業 49
         2.6.1 測驗 49
         2.6.2 答案 49
         2.6.3 練習 50
         第3章 探索Apple平颱語言Objective-C 51
         3.1 麵嚮對象編程和Objective-C 51
         3.1.1 什麼是麵嚮對象編程 52
         3.1.2 麵嚮對象編程術語 53
         3.1.3 什麼是Objective-C 54
         3.2 探索Objective-C文件結構 54
         3.2.1 頭文件/接口文件 55
         3.2.2 實現文件 61
         3.2.3 自動生成的結構 62
         3.2.4 分類和協議 63
         3.3 Objective-C編程基礎 64
         3.3.1 聲明變量 64
         3.3.2 分配和初始化對象 65
         3.3.3 使用方法及發送消息 67
         3.3.4 錶達式和決策 69
         3.4 內存管理和自動引用計數(ARC) 72
         3.4.1 舊方式:保留並釋放對象 72
         3.4.2 新方式:自動引用計數 73
         3.5 進一步探索 73
         3.6 小結 74
         3.7 問與答 74
         3.8 作業 75
         3.8.1 測驗 75
         3.8.2 答案 75
         3.8.3 練習 75
         第4章 Cocoa Touch內幕 76
         4.1 Cocoa Touch是什麼 76
         4.1.1 冷靜麵對大量的功能 77
         4.1.2 年輕而成熟 77
         4.2 探索iPhone技術層 78
         4.2.1 Cocoa Touch層 78
         4.2.2 多媒體層 79
         4.2.3 核心服務層 80
         4.2.4 核心OS層 82
         4.3 跟蹤iOS應用程序的生命周期 82
         4.4 Cocoa基礎 83
         4.4.1 核心應用程序類 84
         4.4.2 數據類型類 85
         4.4.3 界麵類 88
         4.5 使用Xcode探索iOS框架 91
         4.5.1 Xcode文檔 91
         4.5.2 快速幫助 95
         4.6 進一步探索 97
         4.7 小結 97
         4.8 問與答 98
         4.9 作業 98
         4.9.1 測驗 98
         4.9.2 答案 98
         4.9.3 練習 98
         第5章 探索Xcode Interface Builder 99
         5.1 瞭解Interface Builder 99
         5.1.1 IB采用的方法 100
         5.1.2 剖析IB故事闆 100
         5.2 創建用戶界麵 104
         5.2.1 對象庫 105
         5.2.2 將對象加入到視圖中 106
         5.2.3 使用IB編輯工具 107
         5.2.4 自動布局係統 110
         5.3 定製界麵外觀 112
         5.3.1 使用屬性檢查器 113
         5.3.2 設置輔助功能屬性 114
         5.3.3 預覽界麵 115
         5.4 連接到代碼 117
         5.4.1 打開項目 117
         5.4.2 實現概述 118
         5.4.3 輸齣口和操作 119
         5.4.4 對象身份 123
         5.5 進一步探索 124
         5.6 小結 124
         5.7 問與答 124
         5.8 作業 125
         5.8.1 測驗 125
         5.8.2 答案 125
         5.8.3 練習 125
         第6章 模型-視圖-控製器應用程序設計 126
         6.1 瞭解設計模式模型-視圖-控製器 126
         6.1.1 製作意大利麵條 127
         6.1.2 使用MVC將應用程序設計結構化 127
         6.2 Xcode如何實現MVC 128
         6.2.1 視圖 128
         6.2.2 視圖控製器 128
         6.2.3 數據模型 130
         6.3 使用模闆Single View Application 131
         6.3.1 實現概述 131
         6.3.2 創建項目 131
         6.3.3 規劃屬性和連接 135
         6.3.4 設計界麵 137
         6.3.5 創建並連接輸齣口和操作 139
         6.3.6 實現應用程序邏輯 143
         6.3.7 生成應用程序 143
         6.4 進一步探索 144
         6.5 小結 144
         6.6 問與答 145
         6.7 作業 145
         6.7.1 測驗 145
         6.7.2 答案 145
         6.7.3 練習 145
         第7章 使用文本、鍵盤和按鈕 147
         7.1 基本用戶輸入和輸齣 147
         7.1.1 按鈕 147
         7.1.2 文本框和文本視圖 148
         7.1.3 標簽 148
         7.2 使用文本框、文本視圖和按鈕 148
         7.2.1 實現概述 149
         7.2.2 創建項目 149
         7.2.3 使用切割技術製作按鈕模闆 150
         7.2.4 設計界麵 153
         7.2.5 創建並連接輸齣口和操作 164
         7.2.6 隱藏鍵盤 165
         7.2.7 實現應用程序邏輯 168
         7.2.8 生成應用程序 169
         7.3 進一步探索 170
         7.4 小結 170
         7.5 問與答 171
         7.6 作業 171
         7.6.1 測驗 171
         7.6.2 答案 171
         7.6.3 練習 171
         第8章 處理圖像、動畫、滑塊和步進控件 172
         8.1 用戶輸入和輸齣 172
         8.1.1 滑塊 172
         8.1.2 步進控件 173
         8.1.3 圖像視圖 173
         8.2 創建並管理圖像動畫、滑塊和步進控件 174
         8.2.1 實現概述 174
         8.2.2 創建項目 175
         8.2.3 設計界麵 176
         8.2.4 創建並連接到輸齣口和操作 182
         8.2.5 實現應用程序邏輯 185
         8.2.6 生成應用程序 189
         8.3 進一步探索 190
         8.4 小結 190
         8.5 問與答 191
         8.6 作業 191
         8.6.1 測驗 191
         8.6.2 答案 191
         8.6.3 練習 191
         第9章 使用高級界麵對象和視圖 192
         9.1 再談用戶輸入和輸齣 192
         9.1.1 開關 193
         9.1.2 分段控件 193
         9.1.3 Web視圖 194
         9.1.4 可滾動的視圖 195
         9.2 使用開關、分段控件和Web視圖 195
         9.2.1 實現概述 196
         9.2.2 創建項目 196
         9.2.3 設計界麵 197
         9.2.4 創建並連接輸齣口和操作 202
         9.2.5 實現應用程序邏輯 205
         9.2.6 生成應用程序 209
         9.3 使用可滾動視圖 209
         9.3.1 實現概述 209
         9.3.2 創建項目 210
         9.3.3 設計界麵 210
         9.3.4 創建並連接輸齣口和操作 214
         9.3.5 實現應用程序邏輯 214
         9.3.6 生成應用程序 215
         9.4 進一步探索 216
         9.5 小結 216
         9.6 問與答 216
         9.7 作業 217
         9.7.1 測驗 217
         9.7.2 答案 217
         9.7.3 練習 217
         第10章 引起用戶注意 218
         10.1 提醒用戶 218
         10.1.1 提醒視圖 219
         10.1.2 操作錶 221
         10.1.3 係統聲音服務 223
         10.2 探索提醒用戶的方法 225
         10.2.1 實現概述 225
         10.2.2 創建項目 225
         10.2.3 設計界麵 226
         10.2.4 創建並連接輸齣口和操作 227
         10.2.5 實現提醒視圖 229
         10.2.6 實現操作錶 234
         10.2.7 實現提醒音和震動 237
         10.3 進一步探索 238
         10.4 小結 239
         10.5 問與答 239
         10.6 作業 239
         10.6.1 測驗 239
         10.6.2 答案 240
         10.6.3 練習 240
         第11章 實現多場景和彈齣框 241
         11.1 多場景故事闆簡介 241
         11.1.1 術語 242
         11.1.2 創建多場景項目 243
         11.1.3 創建切換 247
         11.1.4 手工控製模態切換 250
         11.1.5 使用齣口和迴退切換 251
         11.1.6 以編程方式創建模態場景切換 252
         11.1.7 在場景之間傳遞數據 254
         11.2 理解iPad彈齣框 256
         11.2.1 創建彈齣框 257
         11.2.2 創建彈齣切換 257
         11.2.3 手工顯示彈齣框 260
         11.2.4 響應用戶關閉彈齣框 260
         11.2.5 以編程方式創建並顯示彈齣框 262
         11.3 使用模態切換 265
         11.3.1 實現概述 265
         11.3.2 創建項目 265
         11.3.3 設計界麵 268
         11.3.4 創建模態切換 270
         11.3.5 迴退到初始場景 271
         11.3.6 創建並連接輸齣口和操作 271
         11.3.7 實現應用程序邏輯 272
         11.3.8 生成應用程序 274
         11.4 使用彈齣框 274
         11.4.1 創建項目 275
         11.4.2 設計界麵 275
         11.4.3 創建彈齣切換 276
         11.4.4 創建並連接輸齣口 277
         11.4.5 實現應用程序邏輯 277
         11.4.6 生成應用程序 279
         11.5 進一步探索 279
         11.6 小結 280
         11.7 問與答 280
         11.8 作業 280
         11.8.1 測驗 280
         11.8.2 答案 280
         11.8.3 練習 280
         第12章 使用工具欄和選擇器做齣選擇 281
         12.1 瞭解工具欄 281
         12.2 探索選擇器 284
         12.2.1 日期選擇器 285
         12.2.2 選擇器視圖 286
         12.3 使用日期選擇器 290
         12.3.1 實現概述 291
         12.3.2 創建項目 291
         12.3.3 設計界麵 293
         12.3.4 創建切換 294
         12.3.5 創建並連接輸齣口和操作 295
         12.3.6 實現場景切換邏輯 296
         12.3.7 實現日期計算邏輯 299
         12.3.8 生成應用程序 302
         12.4 實現自定義選擇器 303
         12.4.1 實現概述 303
         12.4.2 創建項目 303
         12.4.3 設計界麵 305
         12.4.4 創建切換 307
         12.4.5 創建並連接輸齣口和操作 307
         12.4.6 實現場景切換邏輯 308
         12.4.7 實現自定義選擇器視圖 309
         12.4.8 生成應用程序 315
         12.5 進一步探索 315
         12.6 小結 316
         12.7 問與答 316
         12.8 作業 317
         12.8.1 測驗 317
         12.8.2 答案 317
         12.8.3 練習 317
         第13章 使用導航控製器和選項卡欄控製器 318
         13.1 高級視圖控製器 318
         13.2 探索導航控製器 320
         13.2.1 導航欄、導航項和欄按鈕項 320
         13.2.2 在故事闆中使用導航控 製器 321
         13.2.3 在導航場景之間共享數據 323
         13.3 瞭解選項卡欄控製器 324
         13.3.1 選項卡欄和選項卡欄項 324
         13.3.2 在故事闆中使用選項卡欄控製器 325
         13.3.3 在選項卡欄控製器管理的場景之間共享數據 328
         13.4 使用導航控製器 328
         13.4.1 實現概述 329
         13.4.2 創建項目 329
         13.4.3 創建壓入切換 332
         13.4.4 設計界麵 333
         13.4.5 創建並連接輸齣口和操作 334
         13.4.6 實現應用程序邏輯 335
         13.4.7 生成應用程序 337
         13.5 使用選項卡欄控製器 337
         13.5.1 實現概述 337
         13.5.2 創建項目 337
         13.5.3 創建選項卡欄關係 339
         13.5.4 設計界麵 340
         13.5.5 創建並連接輸齣口和操作 341
         13.5.6 實現應用程序邏輯 342
         13.5.7 生成應用程序 344
         13.6 進一步探索 345
         13.7 小結 345
         13.8 問與答 346
         13.9 作業 346
         13.9.1 測驗 346
         13.9.2 答案 346
         13.9.3 練習 347
         第14章 使用錶視圖和分割視圖控製器導航數據 348
         14.1 瞭解錶視圖 348
         14.1.1 錶視圖的外觀 349
         14.1.2 錶單元格 349
         14.1.3 添加錶視圖 350
         14.2 探索分割視圖控製器(僅適用於iPad) 355
         14.2.1 實現分割視圖控製器 356
         14.2.2 模闆Master-Detail Application 357
         14.3 一個簡單的錶視圖應用程序 358
         14.3.1 實現概述 358
         14.3.2 創建項目 358
         14.3.3 設計界麵 359
         14.3.4 連接輸齣口delegate和dataSource 360
         14.3.5 實現應用程序邏輯 361
         14.3.6 生成應用程序 365
         14.4 創建基於主-從視圖的應用程序 365
         14.4.1 實現概述 366
         14.4.2 創建項目 366
         14.4.3 調整iPad界麵 367
         14.4.4 調整iPhone界麵 369
         14.4.5 實現應用程序數據源 371
         14.4.6 實現主視圖控製器 374
         14.4.7 實現細節視圖控製器 377
         14.4.8 修復細節視圖控製器引用問題 378
         14.4.9 生成應用程序 379
         14.5 進一步探索 379
         14.6 小結 379
         14.7 問與答 380
         14.8 作業 380
         14.8.1 測驗 380
         14.8.2 答案 380
         14.8.3 練習 380
         第15章 讀寫應用程序數據 381
         15.1 iOS應用程序和數據存儲 381
         15.2 數據存儲方式 383
         15.2.1 用戶默認設置 384
         15.2.2 設置束 385
         15.2.3 直接訪問文件係統 387
         15.3 創建隱式首選項 389
         15.3.1 實現概述 390
         15.3.2 創建項目 390
         15.3.3 創建界麵 390
         15.3.4 創建並連接輸齣口和操作 391
         15.3.5 實現應用程序邏輯 392
         15.3.6 生成應用程序 395
         15.4 實現係統設置 396
         15.4.1 實現概述 396
         15.4.2 創建項目 396
         15.4.3 設計界麵 397
         15.4.4 創建並連接輸齣口 398
         15.4.5 創建設置束 398
         15.4.6 實現應用程序邏輯 404
         15.4.7 生成應用程序 405
         15.5 實現文件係統存儲 406
         15.5.1 實現概述 406
         15.5.2 創建項目 406
         15.5.3 設計界麵 406
         15.5.4 創建並連接輸齣口和操作 407
         15.5.5 實現應用程序邏輯 409
         15.6 進一步探索 412
         15.7 小結 413
         15.8 問與答 413
         15.9 作業 413
         15.9.1 測驗 413
         15.9.2 答案 414
         15.9.3 練習 414
         第16章 創建自適應和嚮後兼容的用戶界麵 415
         16.1 自適應界麵 415
         16.1.1 啓用界麵鏇轉 416
         16.1.2 設計可鏇轉和調整大小的界麵 417
         16.2 使用自動布局 418
         16.2.1 自動布局的語言和工具 419
         16.2.2 在約束對象中導航 421
         16.2.3 示例1:居中約束 427
         16.2.4 示例2:增大控件 430
         16.2.5 示例3:統一調整大小 433
         16.3 以編程方式定義界麵 436
         16.3.1 實現概述 436
         16.3.2 創建項目 437
         16.3.3 界麵編程 438
         16.3.4 生成應用程序 442
         16.4 鏇轉時切換視圖 442
         16.4.1 實現概述 442
         16.4.2 創建項目 442
         16.4.3 設計界麵 443
         16.4.4 創建並連接輸齣口 444
         16.4.5 實現應用程序邏輯 445
         16.4.6 生成應用程序 447
         16.5 進一步探索 447
         16.6 小結 447
         16.7 問與答 447
         16.8 作業 448
         16.8.1 測驗 448
         16.8.2 答案 448
         16.8.3 練習 448
         第17章 使用復雜的觸摸和手勢 449
         17.1 多點觸摸手勢識彆 449
         17.2 添加手勢識彆器 450
         17.3 使用手勢識彆器 451
         17.3.1 實現概述 451
         17.3.2 創建項目 452
         17.3.3 設計界麵 453
         17.3.4 給視圖添加手勢識彆器 455
         17.3.5 創建並連接輸齣口和操作 458
         17.3.6 實現應用程序邏輯 460
         17.3.7 生成應用程序 467
         17.4 進一步探索 467
         17.5 小結 467
         17.6 問與答 468
         17.7 作業 468
         17.7.1 測驗 468
         17.7.2 答案 468
         17.7.3 練習 468
         第18章 檢測朝嚮和移動 469
         18.1 理解運動硬件 469
         18.1.1 加速計 470
         18.1.2 陀螺儀 471
         18.2 訪問朝嚮和運動數據 472
         18.2.1 通過UIDevice請求朝嚮通知 472
         18.2.2 使用Core Motion讀取加速度、鏇轉速度和姿態 473
         18.3 檢測朝嚮 475
         18.3.1 實現概述 475
         18.3.2 創建項目 475
         18.3.3 設計界麵 475
         18.3.4 創建並連接輸齣口 476
         18.3.5 實現應用程序邏輯 476
         18.3.6 生成應用程序 478
         18.4 檢測加速、傾斜和鏇轉 479
         18.4.1 實現概述 479
         18.4.2 創建項目 480
         18.4.3 設計界麵 480
         18.4.4 創建並連接輸齣口和操作 481
         18.4.5 實現應用程序邏輯 482
         18.4.6 生成應用程序 488
         18.5 進一步探索 488
         18.6 小結 489
         18.7 問與答 489
         18.8 作業 489
         18.8.1 測驗 489
         18.8.2 答案 490
         18.8.3 練習 490
         第19章 使用多媒體 491
         19.1 探索多媒體 491
         19.1.1 Media Player框架 492
         19.1.2 AV Foundation框架 497
         19.1.3 圖像選擇器 499
         19.1.4 Core Image框架 501
         19.2 創建用於練習使用多媒體的應用程序 503
         19.2.1 實現概述 503
         19.2.2 創建項目 503
         19.2.3 設計界麵 504
         19.2.4 創建並連接輸齣口和操作 505
         19.2.5 實現電影播放器 507
         19.2.6 實現音頻錄製和播放 510
         19.2.7 使用照片庫和相機 514
         19.2.8 實現Core Image濾鏡 517
         19.2.9 訪問並播放音樂庫 518
         19.3 進一步探索 523
         19.4 小結 524
         19.5 問與答 524
         19.6 作業 525
         19.6.1 測驗 525
         19.6.2 答案 525
         19.6.3 練習 525
         第20章 與其他應用程序交互 526
         20.1 集成iOS服務 526
         20.1.1 地址簿 526
         20.1.2 電子郵件 530
         20.1.3 在社交網站上發錶信息 531
         20.1.4 地圖功能 533
         20.2 使用地址簿、電子郵件、社交網絡和地圖 537
         20.2.1 實現概述 538
         20.2.2 創建項目 538
         20.2.3 設計界麵 538
         20.2.4 創建並連接輸齣口和操作 540
         20.2.5 實現地址簿邏輯 541
         20.2.6 實現地圖邏輯 544
         20.2.7 實現電子郵件邏輯 547
         20.2.8 實現社交網絡邏輯 548
         20.2.9 將狀態欄設置為白色(可選) 549
         20.2.10 生成應用程序 549
         20.3 進一步探索 550
         20.4 小結 551
         20.5 問與答 551
         20.6 作業 551
         20.6.1 測驗 551
         20.6.2 答案 551
         20.6.3 練習 551
         第21章 實現定位服務 552
         21.1 理解Core Location 552
         21.1.1 獲取位置 552
         21.1.2 獲取航嚮 556
         21.2 創建支持定位的應用程序 558
         21.2.1 實現概述 558
         21.2.2 創建項目 558
         21.2.3 設計視圖 559
         21.2.4 創建並連接輸齣口 560
         21.2.5 實現應用程序邏輯 560
         21.2.6 將狀態欄設置為白色 564
         21.2.7 生成應用程序 564
         21.3 理解磁性指南針 565
         21.3.1 實現概述 565
         21.3.2 創建項目 565
         21.3.3 修改用戶界麵 566
         21.3.4 創建並連接輸齣口 567
         21.3.5 修改應用程序邏輯 567
         21.3.6 生成應用程序 572
         21.4 進一步探索 573
         21.5 小結 573
         21.6 問與答 573
         21.7 作業 574
         21.7.1 測驗 574
         21.7.2 答案 574
         21.7.3 練習 574
         第22章 創建支持後颱處理的應用程序 575
         22.1 理解iOS後颱處理 575
         22.1.1 後颱處理類型 576
         22.1.2 支持後颱處理的應用程序的生命周期 578
         22.2 禁用後颱處理 579
         22.3 處理後颱掛起 580
         22.4 實現本地通知 581
         22.4.1 常用的通知屬性 582
         22.4.2 創建和調度通知 582
         22.5 使用任務特定的後颱處理 583
         22.5.1 修改應用程序Cupertion以支持在後颱播放音頻 584
         22.5.2 使用聲音指示前往庫珀蒂諾的方嚮 585
         22.5.3 添加後颱模式 587
         22.6 完成長時間運行的後颱 任務 588
         22.6.1 實現概述 588
         22.6.2 創建項目 589
         22.6.3 設計界麵 589
         22.6.4 創建並連接輸齣口 590
         22.6.5 實現應用程序邏輯 590
         22.6.6 啓用後颱任務處理 591
         22.6.7 生成應用程序 592
         22.7 執行後颱獲取 592
         22.7.1 實現概述 593
         22.7.2 創建項目 593
         22.7.3 設計界麵 593
         22.7.4 創建並連接輸齣口 594
         22.7.5 實現應用程序邏輯 594
         22.7.6 添加後颱獲取模式 595
         22.7.7 生成應用程序 596
         22.8 進一步探索 596
         22.9 小結 596
         22.10 問與答 597
         22.11 作業 597
         22.11.1 測驗 597
         22.11.2 答案 597
         22.11.3 練習 597
         第23章 創建通用應用程序 598
         23.1 開發通用應用程序 598
         23.1.1 理解通用模闆 599
         23.1.2 通用應用程序設置方麵的不同 600
         23.2 創建通用應用程序:方法1 602
         23.2.1 實現概述 602
         23.2.2 創建項目 603
         23.2.3 設計界麵 603
         23.2.4 創建並連接輸齣口 604
         23.2.5 實現應用程序邏輯 604
         23.2.6 生成應用程序 605
         23.3 創建通用應用程序:方法2 605
         23.3.1 創建項目 605
         23.3.2 設計界麵 607
         23.3.3 創建並連接輸齣口 607
         23.3.4 實現應用程序邏輯 607
         23.3.5 生成應用程序 608
         23.4 使用多個目標 608
         23.4.1 將iPhone目標轉換為iPad目標 609
         23.4.2 將iPad目標轉換為iPhone目標 609
         23.5 進一步探索 610
         23.6 小結 611
         23.7 問與答 611
         23.8 作業 611
         23.8.1 測驗 611
         23.8.2 答案 611
         23.8.3 練習 611
         第24章 應用程序跟蹤、監視和調試 612
         24.1 使用NSLog提供即時反饋 612
         使用NSLog 613
         24.2 使用Xcode調試器 615
         24.2.1 設置斷點及單步執行代碼 616
         24.2.2 使用調試導航器 624
         24.3 進一步探索 627
         24.4 小結 627
         24.5 問與答 628
         24.6 作業 628
         24.6.1 測驗 628
         24.6.2 答案 628
         24.6.3 練習 628
      · · · · · ·     (
收起)