iOS編程實戰

iOS編程實戰

《iOS編程實戰》是2015年10月人民郵電出版社出版的圖書,作者是[美]Rob Napier、Mugunth Kumar。

基本介紹

  • 中文名:iOS編程實戰
  • 作者:[美]Rob Napier、Mugunth Kumar
  • ISBN:9787115368034
  • 頁數:389頁
  • 定價:79元
  • 出版社:人民郵電出版社
  • 出版時間:2015年10月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

《iOS編程實戰》是受開 發者喜愛的iOS進階圖書。它包含大量代碼示例,主線是圍繞如何設計、編寫和維護的iOS套用。開發 者可從《iOS編程實戰》學到大量關於設計模式、編寫可重用代碼以及語法與新框架的知識。
相對上一版,新版進行了大幅修訂,新增6章闡述iOS 7新特性,並對大部分內容進行了更新,涵蓋了iOS 7大部分新增特性,包括新的後台操作(第 11章)、Core Bluetooth(第 13章)、UIKit 動力學(第 19章)以及TextKit(第 21章)。我們提供了如何處理新的扁平化UI的指南(第 2章),還新增了一章開 發者不太常見但相當實用的“小技巧”(第3章)。
《iOS編程實戰》適合iOS移動開發人員。

圖書目錄

第 一部分 全新功能
第 1章 全新的系統 2
1.1 新的UI 2
1.2 UIKit Dynamics和Motion Effects 3
1.3 自定義過渡效果 4
1.4 新的多任務模式 4
1.5 Text Kit 5
1.6 動態字型 5
1.7 MapKit集成 5
1.8 SpriteKit 5
1.9 LLVM 5 5
1.10 Xcode 5 7
1.10.1 nib檔案格式的變化 7
1.10.2 原始碼控制集成 7
1.10.3 自動配置 7
1.10.4 對調試導航面板的改進 8
1.10.5 文檔瀏覽器 8
1.10.6 Asset Catalog 9
1.10.7 測試導航面板 9
1.10.8 持續集成 10
1.10.9 Auto Layout改進 10
1.10.10 iOS模擬器 10
1.11 其他 10
1.12 小結 11
1.13 擴展閱讀 11
第 2章 世界是平的:新的UI範式 12
2.1 清晰、依從和層次 12
2.2 動畫、動畫、動畫 12
2.2.1 UIKit Dynamics 13
2.2.2 UIMotionEffect 13
2.3 著色 14
2.4 用半透明實現層次和上下文 14
2.5 動態字型 15
2.6 自定義過渡效果 16
2.7 把套用過渡(遷移)到iOS 7 17
2.7.1 UIKit變化 17
2.7.2 自定義設計 17
2.7.3 支持iOS 6 17
2.8 小結 20
2.9 擴展閱讀 20
第 二部分 充分利用日常工具
第3章 你可能不知道的 22
3.1 命名**佳實踐 22
3.1.1 自動變數 22
3.1.2 方法 22
3.2 屬性和實例變數**佳實踐 23
3.3 分類 24
3.4 關聯引用 26
3.5 弱引用容器 27
3.6 NSCache 28
3.7 NSURLComponents 28
3.8 CFStringTransform 29
3.9 instancetype 30
3.10 Base64和百分號編碼 31
3.11 -[NSArray firstObject] 31
3.12 小結 31
3.13 擴展閱讀 32
第4章 故事板及自定義切換效果 33
4.1 初識故事板 33
4.1.1 實例化故事板 34
4.1.2 載入故事板中的視圖控制器 34
4.1.3 聯線 34
4.1.4 使用故事板來實現表視圖 36
4.2 自定義切換效果 37
4.2.1 優點 39
4.2.2 白璧微瑕——合併衝突 39
4.3 小結 39
4.4 擴展閱讀 39
第5章 掌握集合視圖 41
5.1 集合視圖 41
5.1.1 類與協定 41
5.1.2 示例 42
5.2 用集合視圖自定義布局實現高 級定製 49
5.2.1 石工布局 50
5.2.2 封面瀏覽布局 55
5.3 小結 56
5.4 擴展閱讀 56
第6章 使用自動布局 58
6.1 Xcode 4的自動布局 58
6.2 了解自動布局 59
6.3 Xcode 5中自動布局的新特性 59
6.3.1 在Xcode 5中使用自動布局 61
6.3.2 固有尺寸 62
6.3.3 固有尺寸和本地化 63
6.3.4 設計時和運行時布局 63
6.3.5 自動更新框線 64
6.3.6 頂部和底部布局引導 65
6.3.7 輔助編輯器中的布局預覽 65
6.3.8 在設計時調試自動布局 65
6.3.9 在自動布局中使用滾動視圖 66
6.3.10 使用自動布局和框線 66
6.3.11 可視格式化語言 66
6.3.12 可視格式化語言的缺點 67
6.3.13 調試布局錯誤 68
6.4 小結 69
6.5 擴展閱讀 69
第7章 更完善的自定義繪圖 71
7.1 iOS的不同繪圖系統 71
7.2 UIKit和視圖繪圖周期 72
7.3 視圖繪製與視圖布局 73
7.4 自定義視圖繪製 74
7.4.1 通過UIKit繪圖 74
7.4.2 路徑 75
7.4.3 理解坐標系 77
7.4.4 重新調整大小以及內容模式 79
7.4.5 變形 80
7.4.6 通過Core Graphics進行繪製 82
7.4.7 混用UIKit與Core Graphics 85
7.4.8 管理圖形上下文 85
7.5 最佳化UIView繪製 87
7.5.1 避免繪圖 87
7.5.2 快取與後台繪製 88
7.5.3 自定義繪圖與預渲染 88
7.5.4 像素對齊與模糊文本 89
7.5.5 透明、不透明與隱藏 90
7.6 小結 90
7.7 擴展閱讀 91
第8章 Core Animation 92
8.1 視圖動畫 92
8.2 管理用戶互動 94
8.3 圖層繪製 94
8.3.1 直接設定內容 96
8.3.2 實現display方法 97
8.3.3 自定義繪圖 97
8.3.4 在自己的上下文中繪圖 99
8.4 移動對象 99
8.4.1 隱式動畫 100
8.4.2 顯式動畫 101
8.4.3 模型與表示 101
8.4.4 關於定時 103
8.5 三維動畫 105
8.6 美化圖層 108
8.7 用動作實現自動動畫 108
8.8 為自定義屬性添加動畫 110
8.9 Core Animation與執行緒 111
8.10 小結 111
8.11 擴展閱讀 111
第9章 多任務 113
9.1 多任務和運行循環簡介 113
9.2 以操作為中心的多任務開發 114
9.3 用GCD實現多任務 118
9.3.1 分派佇列簡介 119
9.3.2 用分派屏障創建同步點 120
9.3.3 分派組 121
9.4 小結 121
9.5 擴展閱讀 121
第三部分 選擇工具
第 10章 創建(Core)Foundation框架 124
10.1 Core Foundation類型 124
10.2 命名和記憶體管理 125
10.3 分配器 126
10.4 內省 126
10.5 字元串和數據 127
10.5.1 常量字元串 127
10.5.2 創建字元串 128
10.5.3 轉換為C字元串 129
10.5.4 其他字元串操作符 131
10.5.5 字元串的支持存儲 131
10.5.6 CFData 132
10.6 容器類型 132
10.6.1 CFArray 133
10.6.2 CFDictionary 133
10.6.3 CFSet和CFBag 134
10.6.4 其他容器類型 134
10.6.5 回調函式 134
10.7 自由橋接 136
10.8 小結 139
10.9 擴展閱讀 139
第 11章 幕後製作:後台處理 140
11.1 後台運行**佳實踐:能力越大責任越大 140
11.2 iOS 7中後台運行的重要變化 142
11.3 用NSURLSession訪問網路 142
11.3.1 會話配置 143
11.3.2 任務 143
11.3.3 後台傳輸 144
11.4 周期性拉取和自適應多任務 146
11.5 後台喚醒 146
11.6 狀態恢復系統 147
11.6.1 測試狀態恢復系統 147
11.6.2 選擇性加入 148
11.6.3 套用啟動過程的變化 149
11.6.4 狀態恢復標識符 149
11.6.5 狀態編碼器與狀態解碼器 149
11.6.6 表視圖和集合視圖 153
11.7 小結 154
11.8 擴展閱讀 154
第 12章 使用REST服務 156
12.1 REST簡介 157
12.2 選擇數據交換格式 157
12.2.1 在iOS中解析XML 157
12.2.2 在iOS中解析JSON 158
12.2.3 XML與JSON 159
12.2.4 模型版本化 160
12.3 假想的Web服務 160
12.4 重要提醒 161
12.5 RESTfulEngine架構(iHotelApp示例代碼) 161
12.5.1 NSURLConnection與第三方框架 161
12.5.2 創建RESTfulEngine 162
12.5.3 使用訪問令牌對API調用進行認證 165
12.5.4 在RESTfulEngine.m中覆蓋相關方法以添加自定義認證頭部 165
12.5.5 取消請求 166
12.5.6 請求回響 166
12.5.7 對JSON數據進行鍵值編碼 167
12.5.8 列表頁面的JSON對象與詳細頁面的JSON對象 169
12.5.9 嵌套JSON對象 169
12.5.10 少即是多 171
12.5.11 錯誤處理 171
12.5.12 本地化 173
12.5.13 使用分類處理其他格式 173
12.5.14 在iOS中提升性能的小技巧 174
12.6 快取 174
12.7 需要離線支持的原因 174
12.8 快取策略 175
12.8.1 存儲快取 175
12.8.2 快取版本和失效 178
12.9 數據模型快取 178
12.10 快取版本控制 182
12.11 創建記憶體快取 183
12.11.1 為AppCache設計記憶體快取 184
12.11.2 處理記憶體警告 185
12.11.3 處理結束和進入後台通知 186
12.12 創建URL快取 186
12.12.1 過期模型 187
12.12.2 驗證模型 187
12.12.3 示例 187
12.12.4 用URL快取來快取圖片 188
12.13 小結 188
12.14 擴展閱讀 188
第 13章 充分利用藍牙設備 190
13.1 藍牙歷史 190
13.2 為什麼選擇低功耗藍牙 191
13.3 藍牙SDK 191
13.3.1 伺服器 191
13.3.2 客戶端 191
13.4 類和協定 191
13.5 使用藍牙設備 192
13.5.1 通過掃描尋找服務 192
13.5.2 連線設備 194
13.5.3 直接獲取外圍設備 194
13.5.4 發現服務 194
13.5.5 發現特性 195
13.6 創建自己的外圍設備 197
13.6.1 廣播服務 197
13.6.2 常見場景 200
13.7 在後台運行 200
13.7.1 後台模式 200
13.7.2 電量考慮 200
13.7.3 狀態保存和恢復 200
13.8 小結 201
13.9 擴展閱讀 201
第 14章 通過安全服務鞏固系統安全 203
14.1 理解iOS沙盒 203
14.2 保證網路通信的安全 204
14.2.1 證書工作原理 205
14.2.2 檢驗證書的有效性 207
14.2.3 判斷證書的可信度 210
14.3 使用檔案保護 211
14.4 使用鑰匙串 213
14.5 使用加密 216
14.5.1 AES概要 217
14.5.2 使用PBKDF2將密碼轉換成密鑰 217
14.5.3 AES模式和填充 219
14.5.4 初始化向量 220
14.5.5 使用HMAC進行認證 221
14.5.6 錯誤的密碼 222
14.5.7 組合使用加密和壓縮 222
14.6 小結 222
14.7 擴展閱讀 222
第 15章 在多個蘋果平台和設備及64位體系結構上運行套用 224
15.1 開發多平台套用 225
15.1.1 可配置的目標設定:Base SDK和Deployment Target 225
15.1.2 支持多個SDK時的注意事項:框架、類和方法 225
15.1.3 檢查框架、類和方法的可用性 227
15.2 檢測設備的功能 228
15.2.1 檢測設備及判斷功能 228
15.2.2 檢測硬體和感測器 229
15.3 套用內傳送Email和簡訊 233
15.4 支持新的4英寸設備族系 233
15.4.1 Cocoa自動布局 235
15.4.2 代碼中固化螢幕尺寸 235
15.4.3 iPhone 5s和新的64位指令集 235
15.5 向iOS 7遷移 236
15.5.1 自動布局 236
15.5.2 支持iOS 6 236
15.5.3 套用圖示 237
15.5.4 無邊界按鈕 237
15.5.5 著色 237
15.5.6 圖片更新 237
15.6 向64位體系結構遷移 238
15.6.1 數據溢出 238
15.6.2 序列化數據 239
15.6.3 針對64位體系結構的條件編譯 239
15.7 UIRequiredDeviceCapabilities 239
15.8 小結 240
15.9 擴展閱讀 240
第 16章 國際化和本地化 242
16.1 什麼是本地化 242
16.2 本地化字元串 243
16.3 對未本地化的字元串進行審查 244
16.4 格式化數字和日期 245
16.5 nib檔案和Base Internationalization 248
16.6 本地化複雜字元串 248
16.7 小結 250
16.8 擴展閱讀 251
第 17章 調試 252
17.1 LLDB 252
17.2 使用LLDB進行調試 252
17.2.1 dSYM檔案 253
17.2.2 符號化 254
17.3 斷點 255
17.4 觀察點 258
17.5 LLDB控制台 259
17.6 NSZombieEnabled標誌 262
17.7 不同的崩潰類型 263
17.7.1 EXC_BAD_ACCESS 263
17.7.2 SIGSEGV 263
17.7.3 SIGBUS 264
17.7.4 SIGTRAP 264
17.7.5 EXC_ARITHMETIC 264
17.7.6 SIGILL 264
17.7.7 SIGABRT 264
17.7.8 看門狗逾時 265
17.7.9 自定義錯誤信號處理程式 265
17.8 斷言 265
17.9 異常 267
17.10 收集崩潰報告 268
17.11 第三方崩潰報告服務 269
17.12 小結 270
17.13 擴展閱讀 270
第 18章 性能調優 272
18.1 性能思維模式 272
18.1.1 指導方針一:產品是為了取悅用戶才存在的 272
18.1.2 指導方針二:設備是為了方便用戶而存在的 272
18.1.3 指導方針三:做到極 致 272
18.1.4 指導方針四:用戶的感知才是實際的 273
18.1.5 指導方針五:關注能帶來大收益的方面 273
18.2 歡迎走入Instruments的世界 273
18.3 查找記憶體問題 275
18.4 查找CPU問題 279
18.4.1 Accelerate框架 282
18.4.2 GLKit 283
18.4.3 編譯器最佳化 283
18.4.4 連結器最佳化 284
18.5 繪圖性能 284
18.6 最佳化磁碟訪問和網路訪問 286
18.7 小結 286
18.8 擴展閱讀 286
第四部分 超越極限
第 19章 近乎物理效果:UIKit動力學 290
19.1 動畫類、行為和動力項 290
19.2 UIKit“物理” 291
19.3 內置行為 292
19.3.1 迅速移動 292
19.3.2 附著 292
19.3.3 推力 293
19.3.4 重力 294
19.3.5 碰撞 294
19.3.6 動力項 295
19.4 行為層次結構 295
19.5 自定義操作 295
19.6 實戰:一個“撕開”視圖 296
19.6.1 拖拽視圖 296
19.6.2 撕開該視圖 297
19.6.3 添加額外效果 300
19.7 多個動力學動畫類 301
19.8 與UICollectionView互動 302
19.9 小結 305
19.10 擴展閱讀 305
第 20章 魔幻的自定義過渡 306
20.1 iOS 7中的自定義過渡 306
20.2 過渡協調器 307
20.3 集合視圖和布局過渡 308
20.4 使用故事板和自定義联線的自定義視圖控制器過渡 308
20.5 自定義視圖控制器過渡:iOS 7風格 308
20.6 使用iOS 7 SDK的互動式自定義過渡 310
20.7 小結 312
20.8 擴展閱讀 313
第 21章 精妙的文本布局 314
21.1 理解富文本 314
21.1.1 字元與字形 314
21.1.2 理解字型 316
21.1.3 段落樣式 316
21.2 屬性化字元串 317
21.2.1 用字型描述符選擇字型 318
21.2.2 設定段落樣式 319
21.2.3 HTML 319
21.2.4 簡化屬性化字元串的使用 320
21.3 動態字型 321
21.4 Text Kit 322
21.4.1 Text Kit的組件 323
21.4.2 多容器布局 324
21.4.3 排除路徑 325
21.4.4 繼承文本容器 326
21.4.5 繼承文本存儲 327
21.4.6 繼承布局管理器 331
21.4.7 針對字形的布局 334
21.5 Core Text 337
21.5.1 用CTFramesetter進行簡單的布局 337
21.5.2 為非連續路徑創建框架 338
21.5.3 排版器、文本行、連續文本和字形 340
21.6 小結 340
21.7 擴展閱讀 341
第 22章 Cocoa的大招:鍵值編碼和觀察 342
22.1 鍵值編碼 342
22.1.1 用KVC賦值 344
22.1.2 用鍵路徑遍歷屬性 345
22.1.3 KVC和容器類 345
22.1.4 KVC和字典 347
22.1.5 KVC和非對象 347
22.1.6 用KVC實現高階訊息傳遞 347
22.1.7 容器操作符 347
22.2 鍵值觀察 348
22.2.1 KVO和容器類 350
22.2.2 KVO是如何實現的 351
22.3 KVO的權衡 351
22.4 小結 352
22.5 擴展閱讀 353
第 23章 超越佇列:GCD高 級功能 354
23.1 信號量 354
23.2 分派源 356
23.3 定時器源 358
23.4 單次分派 358
23.5 佇列關聯數據 359
23.6 分派數據和分派I/O 362
23.7 小結 367
23.8 擴展閱讀 367
第 24章 深度解析Objective-C 368
24.1 理解類和對象 368
24.2 使用方法和屬性 370
24.3 使用方法簽名和調用 372
24.4 訊息傳遞如何工作 378
24.4.1 動態實現 378
24.4.2 快速轉發 380
24.4.3 普通轉發 383
24.4.4 轉發失敗 384
24.4.5 各種版本的objc_msgSend 384
24.5 方法混寫 385
24.6 ISA混寫 387
24.7 方法混寫與ISA混寫 388
24.8 小結 389
24.9 擴展閱讀 389

相關詞條

熱門詞條

聯絡我們