內容簡介
蘋果公司的iOS系統從誕生之日起到現在,在短短几年時間內,憑藉內置有iOS系統的iPhone和iPad的很好的用戶體驗,贏得了廣大消費者和在iOS上開發的程式設計師的青睞。目前,iOS系統一直在智慧型手機作業系統中占有重要的優勢地位。
《iOS 8開發指南》共34章,循序漸進地講解了iOS 8套用開發的基本知識。本書從搭建開發環境講起,依次講解了Objective-C語言基礎、Swift語言基礎、Cocoa Touch、Xcode Interface Builder界面開發、使用Xcode編寫MVC程式、文本框和文本視圖、按鈕和標籤、滑塊、步進和圖像、使用開關控制項和分段控制項、Web視圖控制項和可滾動視圖控制項、提醒和操作表、工具列、日期選擇器、表視圖、活動指示器、進度條和檢索條、UIView詳解、視圖控制器、實現多場景和彈出框、iPad彈出框和分割視圖控制器、界面旋轉、圖形、圖像、圖層和動畫、聲音服務、多媒體套用、定位處理、讀寫應用程式數據、觸摸和手勢識別、和硬體之間的操作、開發通用的項目程式、推服務和多執行緒、Touch ID詳解、遊戲開發等高級知識。《iOS 8開發指南》內容全面,幾乎涵蓋了iOS 8套用開發所需要的主要內容,全書內容言簡意賅,講解方法通俗易懂,特別適合於初學者學習。
《iOS 8開發指南》適合iOS初學者、iOS程式設計師、iPhone開發人員、iPad開發人員學習,也可以作為相關培訓學校和大專院校相關專業的教學用書。
圖書目錄
第 一篇 必備技術篇
第 1章 iOS開發入門 2
1.1 iOS系統介紹 2
1.1.1 iOS發展史 2
1.1.2 全新的版本——iOS 8 2
1.2 iPhone和iPad 4
1.2.1 令人稱奇的iPhone 4
1.2.2 改變世界的iPad 4
1.3 iOS開發之旅 4
1.4 工欲善其事,必先利其器——搭建開發環境 6
1.4.1 Xcode 6介紹 7
1.4.2 iOS SDK介紹 8
1.4.3 下載並安裝Xcode 6 9
1.5 使用Xcode開發環境 11
1.5.1 使用Xcode創建程式的基本步驟 11
1.5.2 Xcode的基本功能 12
1.6 啟動iOS 8模擬器 19
1.7 iOS的常用開發框架 22
1.7.1 Foundation框架簡介 22
1.7.2 Cocoa框架簡介 23
1.8 常用的第三方工具 24
1.8.1 iPhone Simulator 24
1.8.2 Interface Builder 24
第 2章 Objective-C語言基礎 26
2.1 **耀眼的新星 26
2.1.1 看一份統計數據 26
2.1.2 究竟何為Objective-C 26
2.1.3 為什麼選擇Objective-C 27
2.2 Objective-C的優點及缺點 27
2.3 一個簡單的例子 28
2.3.1 使用Xcode編輯代碼 28
2.3.2 基本元素介紹 30
2.4 數據類型和常量 34
2.4.1 int類型 34
2.4.2 float類型 35
2.4.3 double類型 36
2.4.4 char類型 36
2.4.5 字元常量 37
2.4.6 id類型 38
2.4.7 限定詞 39
2.4.8 總結基本數據類型 41
2.5 字元串 41
2.6 算數表達式 42
2.6.1 運算符的優先權 42
2.6.2 整數運算和一元負號運算符 43
2.6.3 模運算符 44
2.6.4 整型值和浮點值的相互轉換 45
2.6.5 類型轉換運算符 46
2.7 表達式 46
2.7.1 常量表達式 46
2.7.2 條件運算符 47
2.7.3 sizeof運算符 47
2.7.4 關係運算符 48
2.7.5 強制類型轉換運算符 49
2.8 位運算符 49
2.8.1 按位與運算符 49
2.8.2 按位或運算符 50
2.8.3 按位異或運算符 50
2.8.4 一次求反運算符 51
2.8.5 向左移位運算符 52
2.8.6 向右移位運算符 52
2.8.7 總結Objective-C的運算符 53
第3章 Swift語言基礎 54
3.1 Swift概述 54
3.1.1 Swift的創造者 54
3.1.2 Swift的優勢 54
3.2 數據類型和常量 56
3.2.1 int類型 56
3.2.2 float類型 56
3.2.3 double類型 57
3.2.4 char類型 57
3.2.5 字元常量 57
3.3 變數和常量 57
3.3.1 常量詳解 57
3.3.2 變數詳解 58
3.4 字元串和字元 59
3.4.1 字元串字面量 59
3.4.2 初始化空字元串 59
3.4.3 字元串可變性 60
3.4.4 值類型字元串 60
3.4.5 計算字元數量 60
3.4.6 連線字元串和字元 61
3.4.7 字元串插值 61
3.4.8 比較字元串 62
3.4.9 Unicode 62
3.5 流程控制 64
3.5.1 for循環(1) 65
3.5.2 for循環(2) 66
3.5.3 while循環 66
3.6 條件語句 67
3.6.1 if語句 67
3.6.2 switch語句 68
3.7 函式 69
3.7.1 函式的聲明與調用 69
3.7.2 函式的參數和返回值 70
3.7.3 函式參數名 72
3.8 實戰演練——使用Xcode創建Swift程式 74
第4章 Cocoa Touch框架 76
4.1 Cocoa Touch基礎 76
4.1.1 Cocoa Touch概述 76
4.1.2 Cocoa Touch中的框架 77
4.1.3 Cocoa Touch的優勢 77
4.2 iPhone的技術層 78
4.2.1 Cocoa Touch 層 78
4.2.2 多媒體層 82
4.2.3 核心服務層 82
4.2.4 核心OS層 83
4.3 Cocoa Touch中的框架 84
4.3.1 Core Animation(圖形處理)框架 84
4.3.2 Core Audio(音頻處理)框架 84
4.3.3 Core Data(數據處理)框架 85
4.4 iOS程式的生命周期 86
4.4.1 從一段代碼看iOS程式的生命周期 86
4.4.2 iOS程式生命周期的原理 87
4.4.3 UIViewController的生命周期 88
4.5 Cocoa中的類 90
4.5.1 核心類 91
4.5.2 數據類型類 93
4.5.3 UI界面類 96
4.6 國際化 99
4.7 使用Xcode學習iOS框架 99
4.7.1 使用Xcode文檔 99
4.7.2 快速幫助 101
第5章 Xcode Interface Builder界面開發 103
5.1 Interface Builder基礎 103
5.1.1 Interface Builder的作用 103
5.1.2 Interface Builder的新特色 103
5.2 Interface Builder採用的方法 105
5.3 Interface Builder的故事板 105
5.3.1 推出的背景 105
5.3.2 故事板的文檔大綱 106
5.3.3 文檔大綱的區域對象 107
5.4 創建一個界面 108
5.4.1 對象庫 108
5.4.2 將對象加入到視圖中 109
5.4.3 使用IB布局工具 110
5.5 定製界面外觀 112
5.5.1 使用屬性檢查器 112
5.5.2 設定輔助功能屬性 113
5.5.3 測試界面 113
5.6 實戰演練——將界面連線到代碼 114
5.6.1 打開項目 114
5.6.2 輸出口和操作 115
5.6.3 創建到輸出口的連線 115
5.6.4 創建到操作的連線 117
5.7 實戰演練——在界面中實現按鈕的互動(基於Swift實現) 118
第6章 使用Xcode編寫MVC程式 122
6.1 MVC模式基礎 122
6.1.1 誕生背景 122
6.1.2 分析結構 122
6.1.3 MVC的特點 123
6.1.4 使用MVC實現程式設計的結構化 123
6.2 Xcode中的MVC 124
6.2.1 原理 124
6.2.2 模板就是給予MVC的 124
6.3 在Xcode中實現MVC 125
6.3.1 視圖 125
6.3.2 視圖控制器 125
6.4 數據模型 127
6.5 實戰演練——使用模板Single View Application 128
6.5.1 創建項目 128
6.5.2 規劃變數和連線 131
6.5.3 設計界面 133
6.5.4 創建並連線輸出口和操作 134
6.5.5 實現應用程式邏輯 136
6.5.6 生成應用程式 138
第 二篇 核心技術篇
第7章 文本框和文本視圖 140
7.1 文本框(UITextField) 140
7.1.1 文本框基礎 140
7.1.2 實戰演練——在螢幕中顯示一個文本輸入框 140
7.1.3 實戰演練——設定文本輸入框的框線線樣式 141
7.1.4 實戰演練——設定文本輸入框的字型和顏色 142
7.1.5 實戰演練——在文本輸入框中設定一個清空按鈕 142
7.1.6 實戰演練——為文本輸入框設定背景圖片 143
7.1.7 實戰演練——使用UITextField控制項(基於Swift實現) 144
7.2 文本視圖(UITextView) 145
7.2.1 文本視圖基礎 145
7.2.2 實戰演練——在螢幕中換行顯示文本 146
7.2.3 實戰演練——在螢幕中顯示可編輯的文本 147
7.2.4 實戰演練——設定螢幕中文本的對齊方式 149
7.2.5 實戰演練——使用UITextView控制項(基於Swift實現) 150
第8章 按鈕和標籤 152
8.1 標籤(UILabel) 152
8.1.1 標籤(UILabel)的屬性 152
8.1.2 實戰演練——使用標籤(UILabel)顯示一段文本 152
8.1.3 實戰演練——在螢幕中顯示指定字型和指定大小的文本 155
8.1.4 實戰演練——設定螢幕中文本的對齊方式 155
8.2 按鈕(UIButton) 156
8.2.1 按鈕基礎 156
8.2.2 實戰演練——按下按鈕後觸發一個事件 157
8.2.3 實戰演練——在螢幕中顯示不同的按鈕 158
8.3 實戰演練——聯合使用文本框、文本視圖和按鈕 159
8.3.1 創建項目 159
8.3.2 設計界面 161
8.3.3 創建並連線輸出口和操作 167
8.3.4 實現按鈕模板 168
8.3.5 隱藏鍵盤 169
8.3.6 實現應用程式邏輯 171
8.3.7 總結執行 172
8.4 使用UILabel控制項和UIButton控制項(基於Swift實現) 174
8.5 實戰演練——開發一個方塊遊戲(基於Swift實現) 177
第9章 滑塊、步進和圖像 191
9.1 滑塊控制項(UISlider) 191
9.1.1 使用Slider 控制項的基本方法 191
9.1.2 實戰演練——滑動滑塊時顯示對應的值 192
9.1.3 實戰演練——滑動滑塊控制文字的大小 193
9.1.4 實戰演練——實現各種各樣的滑塊 194
9.1.5 實戰演練——使用UISlider控制項(基於Swift實現) 200
9.2 步進控制項(UIStepper) 201
9.3 圖像視圖控制項(UIImageView) 202
9.3.1 UIImageView的常用操作 202
9.3.2 實戰演練——在螢幕中顯示圖像 205
9.3.3 實戰演練——在螢幕中繪製一幅圖像 205
9.3.4 實戰演練——在螢幕中繪圖時設定透明度 206
9.3.5 實戰演練——使用UIImageView控制項(基於Swift實現) 208
第 10章 開關控制項和分段控制項 210
10.1 開關控制項(UISwitch) 210
10.1.1 開關控制項基礎 210
10.1.2 實戰演練——改變UISwitch的文本和顏色 210
10.1.3 實戰演練——顯示具有開關狀態的開關 212
10.1.4 實戰演練——聯合使用UISlider與UISwitch控制項 214
10.1.5 實戰演練——使用UISwitch控制項(基於Swift實現) 215
10.2 分段控制項 216
10.2.1 分段控制項的屬性和方法 216
10.2.2 實戰演練——使用 UISegmentedControl控制項 218
10.2.3 實戰演練——選擇一個分段卡後可以改變螢幕的背景顏色 220
10.2.4 實戰演練——設定分段卡的顯示樣式 221
10.2.5 實戰演練——設定不顯示分段卡的選擇狀態 221
10.2.6 實戰演練——改變分段卡的顯示顏色 222
10.2.7 實戰演練——選擇某個選項時在此分段卡中顯示一幅圖片 223
10.2.8 使用UISegmentedControl控制項(基於Swift實現) 224
第 11章 Web視圖控制項、可滾動視圖控制項和翻頁控制項 226
11.1 Web視圖(UIWebView) 226
11.1.1 Web視圖基礎 226
11.1.2 實戰演練——在螢幕中顯示指定的網頁 227
11.1.3 實戰演練——控制螢幕中的網頁 228
11.1.4 實戰演練——在網頁中載入顯示PDF、Word 和JPEG圖片 230
11.1.5 實戰演練——在網頁中載入HTML代碼 231
11.1.6 實戰演練——在網頁中實現觸摸處理 232
11.1.7 實戰演練——使用UIWebView控制項(基於Swift實現) 235
11.2 可滾動的視圖(UIScrollView) 236
11.2.1 UIScrollView的基本用法 236
11.2.2 實戰演練——使用可滾動視圖控制項 240
11.2.3 實戰演練——使用UIScrollView控制項(基於Swift實現) 243
11.3 聯合使用開關、分段控制項和Web視圖控制項 244
11.3.1 創建項目 245
11.3.2 設計界面 246
11.3.3 創建並連線輸出口和操作 249
11.3.4 實現應用程式邏輯 251
11.3.5 生成應用程式 253
11.4 翻頁控制項(UIPageControl) 253
11.4.1 PageControll控制項基礎 253
11.4.2 實戰演練——使用UIPageControl控制項(基於Swift實現) 254
第 12章 提醒和操作表 256
12.1 提醒視圖(UIAlertView) 256
12.1.1 UIAlertView基礎 256
12.1.2 不同的提醒效果 259
12.1.3 實戰演練——實現一個自定義提醒對話框 260
12.1.4 實戰演練——使用UIAlertView控制項 (基於Swift實現) 262
12.2 操作表(UIActionSheet) 266
12.2.1 操作表的基本用法 266
12.2.2 回響操作表 267
12.2.3 使用UIActionSheet的流程 268
12.2.4 實戰演練——使用UIActionSheet控制項(基於Swift實現) 269
第 13章 工具列、日期選擇器 272
13.1 工具列(UIToolbar) 272
13.1.1 工具列基礎 272
13.1.2 修改UIToolBar的背景顏色 273
13.1.3 實戰演練——聯合使用UIToolBar和UIView 274
13.1.4 實戰演練——實現一個播放、暫停按鈕 275
13.1.5 實戰演練——使用UIToolbar控制項(基於Swift實現) 277
13.2 選擇器視圖(UIPickerView) 278
13.2.1 選擇器視圖基礎 278
13.2.2 實戰演練——實現兩個UIPickerView控制項間的數據依賴 281
13.2.3 實戰演練——自定義一個選擇器 283
13.2.4 實戰演練——使用UIPickerView控制項(基於Swift實現) 291
13.3 日期選擇(UIDatePicker) 293
13.3.1 UIDatePicker基礎 293
13.3.2 實戰演練——使用 UIDatePicker 295
13.3.3 實戰演練——實現一個日期選擇器 297
13.3.4 實戰演練——使用UIDatePicker控制項(基於Swift實現) 303
第 14章 表視圖(UITable) 305
14.1 表視圖基礎 305
14.1.1 表視圖的外觀 305
14.1.2 表單元格 305
14.1.3 添加表視圖 305
14.1.4 UITableView詳解 309
14.2 實戰演練 311
14.2.1 實戰演練——拆分表視圖 311
14.2.2 實戰演練——列表顯示18條數據 313
14.2.3 實戰演練——分段顯示列表中的數據 314
14.2.4 實戰演練——刪除單元格 316
14.2.5 實戰演練——自定義UITableViewCell 317
14.3 實戰演練——在表視圖中使用其他控制項(基於Swift實現) 321
14.4 實戰演練動態控制表視圖中的列表條目(基於Swift實現) 323
第 15章 活動指示器、進度條和檢索條 327
15.1 活動指示器(UIActivityIndicatorView) 327
15.1.1 活動指示器基礎 327
15.1.2 實戰演練——實現一個播放器的活動指示器 327
15.1.3 使用UIActivityIndicatorView控制項(基於Swift實現) 329
15.2 進度條(UIProgressView) 331
15.2.1 進度條基礎 331
15.2.2 實戰演練——實現一個藍色進度條效果 331
15.2.3 實戰演練——在進度條中顯示進度百分比 332
15.2.4 使用UIProgressView控制項(基於Swift實現) 334
15.3 檢索條(UISearchBar) 335
15.3.1 檢索條基礎 335
15.3.2 實戰演練——在螢幕中實現一個檢索框效果 335
15.3.3 實戰演練——實現一個實時顯示檢索框效果 337
15.3.4 實戰演練——設定檢索框的背景顏色 337
15.3.5 實戰演練——在檢索框中添加一個書籤按鈕 338
15.3.6 實戰演練——在檢索框中添加一個範圍條 340
15.3.7 使用UISearchBar控制項(基於Swift實現) 340
第 16章 UIView詳解 342
16.1 UIView基礎 342
16.1.1 UIView的結構 342
16.1.2 視圖架構 344
16.1.3 視圖層次和子視圖管理 345
16.1.4 視圖繪製周期 345
16.2 實戰演練——設定UIView的位置和尺寸 345
16.3 實戰演練——隱藏指定的UIView區域 346
16.4 實戰演練——改變背景顏色 347
16.5 實戰演練——實現背景透明 349
16.6 實戰演練——定位螢幕中的圖片 350
16.7 實戰演練——旋轉和縮放視圖 353
第 17章 視圖控制器 356
17.1 導航控制器(UIViewController)簡介 356
17.1.1 UIViewController基礎 356
17.1.2 實戰演練——實現不同界面之間的跳轉處理 357
17.2 使用UINavigationController 358
17.2.1 導航欄、導航項和欄按鈕項 359
17.2.2 UINavigationController詳解 359
17.2.3 在故事板中使用導航控制器 362
17.2.4 使用 UINavigationController的流程 364
17.2.5 實戰演練——實現不同視圖的切換 364
17.2.6 實戰演練——通過列表實現不同界面之間的跳轉 366
17.2.7 實戰演練——使用導航控制器展現3個場景 369
17.3 選項卡欄控制器 373
17.3.1 選項卡欄和選項卡欄項 373
17.3.2 在選項卡欄控制器管理的場景之間共享數據 375
17.3.3 UITabBarController使用詳解 375
17.3.4 實戰演練——實現不同場景的切換 378
17.3.5 實戰演練——使用選項卡欄控制器構建3個場景 381
17.4 實戰演練——動態添加列表(基於Swift實現) 385
第三篇 技術進階篇
第 18章 實現多場景和彈出框 390
18.1 多場景故事板 390
18.1.1 多場景故事板基礎 390
18.1.2 創建多場景項目 391
18.1.3 實戰演練——使用第 二個視圖來編輯第 一個視圖中的信息 395
18.1.4 實戰演練——實現多個視圖之間的切換 399
18.2 實現一個新聞閱讀器(基於Swift實現) 403
第 19章 iPad彈出框和分割視圖控制器 408
19.1 iPad彈出框 408
19.1.1 創建彈出框 408
19.1.2 創建彈出切換 408
19.1.3 手工顯示彈出框 410
19.1.4 回響用戶關閉彈出框 410
19.1.5 以編程方式創建並顯示彈出框 411
19.1.6 實戰演練——使用彈出框更新內容 413
19.2 探索分割視圖控制器 415
19.2.1 分割視圖控制器基礎 416
19.2.2 表視圖實戰演練 418
第 20章 界面旋轉、大小和全螢幕處理 423
20.1 啟用界面旋轉 423
20.2 設計可旋轉和調整大小的界面 424
20.2.1 自動旋轉和自動調整大小 424
20.2.2 調整框架 424
20.2.3 切換視圖 424
20.2.4 實戰演練——使用Interface Builder創建可旋轉和調整大小的界面 424
20.2.5 實戰演練——在旋轉時調整控制項 427
20.2.6 實戰演練——旋轉時切換視圖 431
第 21章 圖形、圖像、圖層和動畫 434
21.1 圖形處理 434
21.1.1 iOS的繪圖機制 434
21.1.2 實戰演練——在螢幕中繪製一個三角形 435
21.2 圖像處理 437
21.2.1 實戰演練——實現顏色選擇器/調色板功能 438
21.2.2 實戰演練——實現滑動顏色選擇器/調色板功能 439
21.3 圖層 441
21.3.1 視圖和圖層 442
21.3.2 實戰演練——在螢幕中實現3個重疊的矩形 442
21.3.3 實戰演練——實現圖層的變換 443
21.3.4 實戰演練——在指南針上實現某種“頁面翻轉”的效果 446
21.4 實現動畫 449
21.4.1 UIImageView動畫 449
21.4.2 視圖動畫UIView 449
21.4.3 Core Animation詳解 454
21.4.4 實戰演練——聯合使用圖像動畫、滑塊和步進控制項 456
21.4.5 實戰演練——實現“煙花煙花滿天飛”的效果 469
21.5 實戰演練——圖形圖像的人臉檢測處理(基於Swift實現) 470
第 22章 聲音服務 475
22.1 訪問聲音服務 475
22.1.1 聲音服務基礎 475
22.1.2 實戰演練——播放聲音檔案 476
22.2 提醒和振動 480
22.2.1 播放提醒音 480
22.2.2 實戰演練——實用iOS的提醒功能 481
第 23章 多媒體套用 490
23.1 Media Player框架 490
23.1.1 Media Player框架中的類 490
23.1.2 使用電影播放器 491
23.1.3 處理播放結束 492
23.1.4 使用多媒體選擇器 492
23.1.5 使用音樂播放器 493
23.1.6 實戰演練——使用Media Player播放視頻 494
23.2 AV Foundation框架 496
23.2.1 準備工作 496
23.2.2 使用AV音頻播放器 496
23.2.3 使用AV錄音機 497
23.2.4 使用AV Foundation框架播放音頻的流程 497
23.3 圖像選擇器(UIImagePickerController) 499
23.3.1 使用圖像選擇器 499
23.3.2 圖像選擇器控制器委託 499
23.3.3 UIImagePickerController在iPhone和iPad上的區別 500
23.3.4 用UIImagePickerController調用系統照相機 501
23.3.5 防止 UIImagePickerController“壞死” 501
23.4 實戰演練——一個多媒體的應用程式 502
23.4.1 實現概述 502
23.4.2 創建項目 502
23.4.3 設計界面 503
23.4.4 創建並連線輸出口和操作 504
23.4.5 實現電影播放器 504
23.4.6 實現音頻錄製和播放 506
23.4.7 使用照片庫和相機 509
23.4.8 實現Core Image濾鏡 510
23.4.9 訪問並播放音樂庫 511
23.5 實戰演練——實現一個MP3播放器(基於Swift語言) 514
第 24章 定位處理 518
24.1 Core Location框架 518
24.1.1 Core Location基礎 518
24.1.2 使用流程 518
24.2 獲取位置 521
24.2.1 位置管理器委託 521
24.2.2 處理定位錯誤 522
24.2.3 位置精度和更新過濾器 522
24.2.4 獲取航向 523
24.3 地圖功能 524
24.3.1 Map Kit基礎 524
24.3.2 為地圖添加標註 525
24.4 實戰演練——創建一個支持定位的應用程式 526
24.4.1 創建項目 526
24.4.2 設計視圖 527
24.4.3 創建並連線輸出口 529
24.4.4 實現應用程式邏輯 529
24.4.5 生成應用程式 530
24.5 實戰演練——在螢幕中實現一個定位系統 531
24.5.1 設計界面 531
24.5.2 具體編碼 532
24.6 實戰演練——使用谷歌地圖 534
24.6.1 添加打開地圖功能 535
24.6.2 升級視圖控制器 537
24.6.3 添加自定義地圖示注對象 538
第 25章 和網際網路接軌 540
25.1 UIWebView控制項 540
25.1.1 UIWebView基礎 540
25.1.2 實戰演練——顯示指定的網頁 541
25.1.3 實戰演練——控制螢幕中的網頁 542
25.1.4 實戰演練——載入顯示PDF、Word和JPEG圖片 543
25.1.5 實戰演練——在網頁中載入HTML代碼 545
25.1.6 實戰演練——在網頁中實現觸摸處理 545
25.2 實戰演練——實現一個簡單的網頁瀏覽器 548
第 26章 讀寫應用程式數據 552
26.1 iOS應用程式和數據存儲 552
26.2 用戶默認設定 553
26.3 設定束 553
26.3.1 設定束基礎 554
26.3.2 實戰演練——通過隱式首選項實現一個手電筒程式 554
26.4 直接訪問檔案系統 558
26.4.1 應用程式數據的存儲位置 559
26.4.2 獲取檔案路徑 559
26.4.3 讀寫數據 560
26.4.4 讀取和寫入檔案 560
26.4.5 通過plist檔案存取檔案 561
26.4.6 保存和讀取檔案 563
26.4.7 檔案共享和檔案類型 563
26.4.8 傳遞一個文檔 564
26.4.9 實戰演練——實現一個收集用戶信息的程式 565
26.5 iCloud存儲 569
26.6 使用SQLite3存儲和讀取數據 570
26.7 核心數據 574
26.7.1 Core Data基礎 574
26.7.2 Core Data基本架構 575
26.7.3 託管對象(Managed Objects)和託管對象模型(Managed Object Model) 578
26.7.4 實戰演練——在iOS中使用CoreData 579
26.8 網際網路數據 582
26.8.1 XML和JSON 583
26.8.2 實戰演練——使用JSON獲取網站中的照片信息 585
第四篇 技術提高篇
第 27章 觸摸和手勢識別 590
27.1 多點觸摸和手勢識別基礎 590
27.2 觸摸處理 590
27.2.1 觸摸事件和視圖 591
27.2.2 實戰演練——觸控螢幕幕中的按鈕 596
27.2.3 實戰演練——同時滑動螢幕中的兩個滑塊 597
27.2.4 實戰演練——觸控螢幕幕檢測 598
27.2.5 實戰演練——觸控螢幕幕中的文字標籤 598
27.3 手勢處理 599
27.3.1 手勢處理基礎 599
27.3.2 實戰演練——實現一個手勢識別器 605
第 28章 和硬體之間的操作 612
28.1 加速計和陀螺儀 612
28.1.1 加速計基礎 612
28.1.2 陀螺儀 616
28.1.3 實戰演練——檢測傾斜和旋轉 617
28.2 訪問朝向和運動數據 621
28.2.1 兩種方法 621
28.2.2 實戰演練——檢測朝向 622
第 29章 地址簿、郵件和Twitter 625
29.1 地址簿 625
29.1.1 框架Address Book UI 625
29.1.2 框架Address Book 626
29.2 電子郵件 627
29.3 使用Twitter傳送推特信息 628
29.4 實戰演練——聯合使用地址簿、電子郵件、Twitter和地圖 628
29.4.1 創建項目 629
29.4.2 設計界面 629
29.4.3 創建並連線輸出口和操作 630
29.4.4 實現地址簿邏輯 630
29.4.5 實現地圖邏輯 632
29.4.6 實現電子郵件邏輯 634
29.4.7 實現Twitter邏輯 635
29.4.8 生成應用程式 636
29.5 實戰演練——開發一個Twitter客戶端(基於Swift) 636
第30章 開發通用的項目程式 640
30.1 開發通用應用程式 640
30.1.1 在iOS 6中開發通用應用程式 640
30.1.2 在iOS 7、iOS 8中開發通用應用程式 641
30.1.3 圖示檔案 648
30.1.4 啟動圖像 649
30.2 實戰演練——使用通用程式模板創建通用應用程式 649
30.2.1 創建項目 649
30.2.2 設計界面 649
30.2.3 創建並連線輸出口 650
30.2.4 實現應用程式邏輯 650
30.3 實戰演練——使用視圖控制器 651
30.3.1 創建項目 652
30.3.2 設計界面 653
30.3.3 創建並連線輸出口 653
30.3.4 實現應用程式邏輯 653
30.3.5 生成應用程式 654
30.4 實戰演練——使用多個目標 654
30.4.1 將iPhone目標轉換為iPad目標 654
30.4.2 將iPad目標轉換為iPhone目標 655
30.5 實戰演練——創建基於“主—從”視圖的應用程式 656
30.5.1 創建項目 656
30.5.2 調整iPad界面 657
30.5.3 調整iPhone界面 658
30.5.4 實現應用程式數據源 659
30.5.5 實現主視圖控制器 661
30.5.6 實現細節視圖控制器 662
30.5.7 生成應用程式 663
30.6 開發一個iPad飛行遊戲(基於Swift) 663
第31章 推服務和多執行緒 671
31.1 推服務 671
31.1.1 推服務介紹 671
31.1.2 推服務的機制 672
31.2 多執行緒 672
31.2.1 多執行緒基礎 672
31.2.2 iOS中的多執行緒 674
31.2.3 執行緒的同步與鎖 678
31.2.4 執行緒的互動 679
31.3 ARC機制 680
31.3.1 ARC概述 680
31.3.2 ARC中的新規則 681
第32章 Touch ID詳解 682
32.1 初步認識Touch ID 682
32.2 開發Touch ID應用程式 684
32.2.1 iOS 8的新功能 684
32.2.2 開發Touch ID應用程式的步驟 685
32.3 實戰演練——使用Touch ID認證 686
32.4 實戰演練——使用Touch ID密碼和指紋認證 688
32.5 實戰演練——Touch ID認證的綜合演練 692
第33章 遊戲開發 699
33.1 Sprite Kit框架基礎 699
33.1.1 Sprite Kit的優點和缺點 699
33.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的選擇 699
33.1.3 實戰演練——開發一個Sprite Kit遊戲程式 700
33.2 實戰演練——開發一個Flappy Bird遊戲(基於Swift) 708
第五篇 綜合實戰篇
第34章 公交路線查詢系統 716
34.1 公交路線查詢系統介紹 716
34.2 公交路線查詢系統主界面 717
34.2.1 線路查詢視圖 717
34.2.2 線路詳情模組 720
34.2.3 線路中某站詳情 723
34.3 站站查詢 727
34.3.1 站站查詢主視圖 727
34.3.2 站站查詢詳情視圖 735
34.4 線路收藏本站歷史 737
34.5 地圖信息 742
34.5.1 地圖主視圖 742
34.5.2 Web地圖視圖 744
34.6 系統設定 745
34.6.1 主視圖 746
34.6.2 當前城市視圖 750
34.6.3 數據下載視圖 753