前言 XIII
第1章 Cocoa開發工具 1
1.1 Mac和iOS開發者計劃 1
1.1.1 注冊開發者計劃 2
1.1.2 下載Xcode 3
1.2 用Xcode創建自己的第一個項目 4
1.3 開發一個簡單的Swift應用程序 11
1.3.1 設計界麵 11
1.3.2 連接代碼 13
1.4 使用iOS模擬器 14
1.5 用TestFlight測試iOS App 16
第2章 用Swift設計程序 17
2.1 Swift程序設計語言 17
2.2 playground 19
2.3 變量和常量 20
2.4 類型 21
2.4.1 元組 23
2.4.2 數組 23
2.4.3 字典 25
2.5 控製流 25
2.6 函數與閉包 29
2.6.1 將函數用作變量 32
2.6.2 閉包 34
2.7 對象 35
2.7.1 繼承 36
2.7.2 初始化與反初始化 37
2.7.3 屬性 38
2.7.4 協議 40
2.7.5 擴展 41
2.7.6 訪問控製 43
2.7.7 運算符 44
2.7.8 泛型 45
2.8 與Objective-C的互操作 46
2.9 在同一項目中使用Objective-C和Swift 46
2.9.1 在Objective-C中使用Swift對象 46
2.9.2 在Swift中使用Objective-C 47
2.10 模塊 48
2.11 內存管理 48
2.12 字符串 49
2.12.1 比較字符串 50
2.12.2 查找字符串 50
2.13 數據 50
2.13.1 從文件和URL加載數據 51
2.13.2 序列化與反序列化 51
2.14 Cocoa中的設計模式 52
2.14.1 模型- 視圖- 控製器 52
2.14.2 委托 53
第3章 OS X和iOS上的應用程序 56
3.1 什麼是應用程序 56
3.1.1 應用程序、框架、實用工具及其他 57
3.1.2 App的構成 58
3.1.3 用NSBundle在應用程序中查找資源 60
3.2 應用程序生命周期 61
3.2.1 OS X應用程序 61
3.2.2 iOS應用程序 62
3.3 應用程序沙盒 67
3.4 用NSNotification發送通知 70
第4章 圖形用戶界麵 72
4.1 OS X和iOS中的界麵 72
4.2 MVC和應用程序設計 73
4.3 nib文件和故事闆 73
4.3.1 nib文件的結構 74
4.3.2 故事闆 77
4.3.3 輸齣口和操作 77
4.3.4 如何加載nib文件和故事闆 78
4.4 構建界麵 79
4.5 構建具有nib和約束的App 81
4.6 iOS上的界麵 84
4.7 UI Dynamics 87
4.7.1 UI和重力 87
4.7.2 吸附UI 88
4.8 Core Animation 89
4.8.1 層 90
4.8.2 動畫 91
第5章 閉包和操作隊列 94
5.1 Cocoa中的閉包 95
5.2 操作隊列中的並發 96
5.3 操作隊列和NSOperation 96
5.4 在操作隊列中執行工作 97
5.5 融會貫通 98
第6章 在視圖上繪製圖形 103
6.1 如何繪製 103
6.2 像素網格 105
6.2.1 Retina顯示屏 106
6.2.2 像素與屏幕點 107
6.3 在視圖中繪製 107
6.3.1 框架矩形 107
6.3.2 邊界矩形 108
6.4 創建自定義視圖 109
6.4.1 用純色填充 110
6.4.2 處理路徑 111
6.4.3 創建自定義路徑 112
6.4.4 多條子路徑 114
6.4.5 陰影 115
6.4.6 漸變 119
6.4.7 變換 121
第7章 SpriteKit 123
7.1 SpriteKit的體係結構 123
7.2 製作使用SpriteKit的App 124
7.3 使用SpriteKit場景 125
7.4 SpriteKit節點 127
7.5 將精靈放在場景中 128
7.6 對觸碰作齣響應 129
7.7 使用紋理 130
7.8 紋理貼圖集 131
7.9 使用文本 131
7.10 用操作實現內容的動畫 133
7.11 使用形狀節點 134
7.12 使用圖像特效節點 135
7.13 嚮SpirteKit對象增加物理屬性 137
7.14 嚮SpriteKit對象添加接閤 138
7.15 SpriteKit場景照明 138
7.16 約束 139
7.17 在SpriteKit中使用陰影 140
7.18 使用SpriteKit編輯器 142
第8章 SceneKit 143
8.1 SceneKit結構 144
8.2 使用SceneKit 144
8.3 添加SceneKit視圖 145
8.4 添加場景 146
8.5 添加照相機 146
8.6 添加3D對象 147
8.7 添加光源 149
8.8 為場景中的內容實現動畫 150
8.9 創建文本幾何體 151
8.10 使用材料 153
8.11 命中檢測 157
8.12 約束 158
8.13 從COLLADA文件中加載數據 160
8.14 嚮場景中添加物理仿真 162
第9章 音頻與視頻 165
9.1 AV Foundation 165
9.2 用AVPlayer播放視頻 166
9.2.1 AVPlayerLayer 167
9.2.2 融會貫通 167
9.2.3 AVKit 170
9.2.4 iOS上的AVKit 172
9.2.5 用AVAudioPlayer播放聲音 174
9.3 語音閤成 175
9.4 使用照片庫 176
9.4.1 從相機采集照片和視頻 176
9.4.2 開發照片應用程序 178
9.4.3 照片庫 181
第10章 iCloud和數據存儲 182
10.1 偏好設置 182
10.1.1 注冊默認偏好設置 183
10.1.2 訪問偏好設置 184
10.1.3 設定偏好設置 184
10.2 使用文件係統 184
10.2.1 使用NSFileManager 186
10.2.2 文件存儲位置 189
10.3 使用沙盒 189
10.3.1 啓用沙盒 190
10.3.2 打開和保存麵闆 190
10.3.3 安全範圍內的書簽 191
10.4 iCould 192
10.5 iCloud存儲什麼 193
10.6 為iCloud進行設置 194
10.7 測試iCloud是否正常工作 194
10.8 存儲設置 195
10.8.1 處理外部修改 196
10.8.2 iOS上的相應內容 197
10.9 iCloud存儲 199
10.9.1 OS X上的iCloud存儲 200
10.9.2 iOS上的iCloud存儲 204
10.10 文檔選取器 206
10.11 iCloud的最佳使用 210
第11章 Cocoa綁定 211
11.1 將視圖綁定到模型 211
11.2 一個簡單的綁定App 212
11.3 綁定到控製器 214
11.4 數組和對象控製器 216
11.5 一個更復雜的綁定App 216
第12章 錶格視圖和集閤視圖 223
12.1 數據源和委托 223
12.2 錶格視圖 224
12.2.1 iOS上的UITableView 224
12.2.2 OS X上的NSTableView 231
12.3 集閤視圖 236
第13章 基於文檔的應用程序 240
13.1 NSDocument和UIDocument類 241
13.2 MVC 中的文檔對象 241
13.2.1 文檔的類型 241
13.2.2 文檔的角色 242
13.3 OS X上基於文檔的應用程序 243
13.3.1 自動保存與版本 243
13.3.2 用NSDocument錶示文檔 243
13.3.3 保存簡單數據 244
13.3.4 保存更復雜的數據 246
13.4 iOS上基於文檔的應用程序 250
第14章 聯網 257
14.1 連接 257
14.1.1 NSURL 258
14.1.2 NSURLRequest 259
14.1.3 NSURLSession 259
14.1.4 NSURLResponse和NSHTTPURLResponse 260
14.2 開發聯網應用程序 261
14.3 Bonjour服務的發現 262
14.4 Multipeer Connectivity 264
第15章 與現實世界互動 269
15.1 使用位置 269
15.1.1 位置硬件 270
15.1.2 Core Location框架 271
15.1.3 使用Core Location 272
15.2 地理編碼 275
15.3 區域監測和iBeacon 278
15.4 位置與隱私 281
15.5 地圖 281
15.5.1 使用地圖 281
15.5.2 標記地圖 282
15.5.3 地圖與覆蓋物 282
15.6 設備運動 284
15.6.1 使用Core Motion 285
15.6.2 使用內置高度計 288
15.6.3 使用計步器 289
15.7 打印文檔 290
15.7.1 在OS X 上打印 291
15.7.2 在iOS 上打印 291
15.8 Game Controller 293
15.9 App Nap 295
15.10 用Touch ID驗證 296
15.11 Handoff 300
第16章 EventKit 305
16.1 理解事件 305
16.2 訪問事件存儲庫 306
16.3 訪問日曆 307
16.4 訪問事件 307
16.5 處理事件 308
16.6 開發一個事件應用程序 310
16.7 用戶隱私 314
第17章 Instruments和調試器 315
17.1 開始使用Instruments 316
17.1.1 Instruments 界麵 318
17.1.2 觀察數據 318
17.1.3 從Library中添加Instruments 319
17.2 用Instruments解決問題 320
17.3 循環保留和漏洞 324
17.4 使用調試器 326
17.4.1 設置斷點 326
17.4.2 查看內存內容 328
17.4.3 使用調試器控製颱 329
17.5 視圖調試 329
17.6 測試框架 331
17.6.1 編寫測試 332
17.6.2 編寫異步測試 333
17.6.3 性能測試塊 334
17.7 調試儀錶 334
17.8 性能優化 334
第18章 共享與通知 336
18.1 共享 336
18.2 在iOS上共享 339
18.3 在OS X上共享 341
18.4 通知 342
18.4.1 注冊通知設置 342
18.4.2 推送通知 347
18.4.3 通知到達時會發生什麼 347
18.5 發送推送通知 348
18.6 設置接收推送通知 349
18.7 接收推送通知 350
18.8 本地通知 352
第19章 非標準App 354
19.1 命令行工具 354
19.2 偏好設置窗格 355
19.2.1 偏好設置窗格如何工作 356
19.2.2 偏好設置域 356
19.2.3 生成示例偏好設置窗格 357
19.3 狀態欄項目 359
19.4 多窗口iOS App 361
第20章 處理文本 364
20.1 國際化與本地化 364
20.1.1 字符串文件 364
20.1.2 創建一個示例本地化應用程序 365
20.2 用NSFormatter設定數據格式 372
20.3 設定數字、長度、質量、能量和數據的格式 374
20.3.1 NSNumberFormatter 374
20.3.2 NSEnergyFormatter、NSMassFormatter 和NSLengthFormatter 375
20.3.3 NSByteCountFormatter 376
20.4 用NSDataDetector檢測數據 377
20.5 TextKit 379
作者介紹 382
封麵介紹 382
· · · · · · (
收起)