|
-- 會員 / 註冊 --
|
|
|
|
iOS 6編程實戰 ( 簡體 字) |
作者:[美] Rob Napier Mugunth Kumar | 類別:1. -> 程式設計 -> 手機程式 -> iPhone |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 35283 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:4/1/2013 |
頁數:432 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115312181 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:iOS平臺不斷發展變化,《iOS 6編程實戰》基于此進行了全面更新,分4部分深入介紹iOS 6開發。第一部分主要介紹iOS 6新功能。第二部分帶你熟練掌握常用工具(含表視圖通知和動畫圖層),內容涉及Cocoa設計模式與蘋果利用其解決問題的思路、通過Objective-C的ARC管理內存、正確使用表視圖(含解決無限滾動等問題)、集合視圖與自動布局、自定義繪圖、視圖動畫與Core Animation框架、錯誤處理、位置服務。第三部分介紹特定情況下要使用的工具與相關技術,涉及表視圖、多任務、REST式服務、安全(用鑰匙串、證書和密碼保護應用與用戶數據)、基于硬件和平臺調整應用、輕松打造國際化與本地化、應用內購買、用Instruments進行性能調優。第四部分介紹了更高級的開發工具,涵蓋故事板與自定義切換效果、KVO、塊與函數式編程、離線支持、云、文本布局、Core Foundation,并最后深度解析了Objective-C。 《iOS 6編程實戰》適合具有一定iOS開發經驗,致力于深入了解iOS開發、最佳實踐以及他人實際開發經驗的人學習參考。 |
目錄:第一部分 全新功能
第1章 全新的系統 2 1.1 新功能 2 1.1.1 集合視圖 3 1.1.2 自動布局 3 1.1.3 自動引用計數 3 1.1.4 應用內購買的托管內容 4 1.1.5 社交框架 4 1.1.6 UI狀態保留 4 1.1.7 其他新功能 4 1.2 小結 6 1.3 擴展閱讀 6
第2章 熟悉Xcode 4和LLVM編譯器 7 2.1 了解用戶界面 8 2.1.1 標簽式編輯器 9 2.1.2 按鍵綁定的變化 9 2.1.3 工程設置編輯器 10 2.1.4 內置的版本控制系統 10 2.1.5 工作區 10 2.2 單窗口工作方式 10 2.3 導航面板 11 2.3.1 工程導航面板 12 2.3.2 符號導航面板 12 2.3.3 搜索導航面板 12 2.3.4 問題導航面板 12 2.3.5 調試導航面板 12 2.3.6 斷點導航面板 12 2.3.7 日志導航面板 13 2.4 輔助功能 13 2.5 內置的Interface Builder 13 2.6 Xcode之核心:LLVM編譯器 14 2.6.1 Clang編譯器前端 15 2.6.2 我是一個Bug!修復我 15 2.7 LLVM 4的新功能 15 2.7.1 字面量 15 2.7.2 字面量和可用性檢查 18 2.7.3 實例變量的自動合成 18 2.8 使用Git進行版本控制 19 2.8.1 內置的Git版本控制系統 19 2.8.2 版本編輯器 19 2.8.3 Git最佳實踐 19 2.9 Scheme 20 2.9.1 為什么使用Scheme 20 2.9.2 建議用Scheme實現你的意圖 21 2.9.3 創建一個Scheme 21 2.9.4 共享你的Scheme 22 2.10 為編譯配置添加注釋 22 2.10.1 創建xcconfig文件 22 2.10.2 重構編譯配置文件 23 2.11 將代碼轉換為支持ARC的Objective-C代碼 23 2.12 Xcode 4 Organizer 25 2.12.1 Automatic Device Provisioning 25 2.12.2 查看崩潰日志和控制臺輸出 25 2.12.3 查看應用沙盒數據 26 2.12.4 管理版本庫 26 2.12.5 管理應用程序歸檔 26 2.12.6 查看Objective-C和SDK文檔 26 2.13 小結 26 2.14 擴展閱讀 26 2.14.1 蘋果文檔 26 2.14.2 WWDC講座 27 2.14.3 博客 27 2.14.4 網上資源 27 2.14.5 圖書 27
第二部分 熟能生巧
第3章 Objective-C基礎知識 30 3.1 命名約定 30 3.2 自動引用計數 32 3.3 屬性 35 3.3.1 屬性修飾關鍵字 36 3.3.2 屬性最佳實踐 37 3.3.3 私有實例變量 37 3.4 存取器 37 3.5 分類和擴展 38 3.5.1 +load方法 40 3.5.2 使用關聯引用為分類添加數據 40 3.5.3 類擴展 42 3.6 正式協議和非正式協議 42 3.7 小結 43 3.8 擴展閱讀 44 3.8.1 蘋果文檔 44 3.8.2 其他資源 44
第4章 Cocoa設計模式 45 4.1 理解模型?視圖?控制器 45 4.1.1 使用模型類 46 4.1.2 使用視圖類 46 4.1.3 使用控制器類 47 4.2 理解委托和數據源 47 4.3 使用命令模式 48 4.3.1 使用目標?動作 48 4.3.2 使用方法簽名和調用 49 4.3.3 使用蹦床 52 4.3.4 撤銷 55 4.4 使用觀察者模式 55 4.5 使用單例模式 58 4.6 小結 60 4.7 擴展閱讀 60 4.7.1 蘋果文檔 60 4.7.2 其他資源 61
第5章 通過Objective-C的ARC管理內存 62 5.1 Objective-C的ARC基礎入門 62 5.1.1 歷史簡介 62 5.1.2 手動引用計數與自動引用計數 63 5.2 什么是ARC 63 5.2.1 在ARC工程中集成非ARC的第三方代碼 64 5.2.2 在非ARC工程中集成ARC代碼 64 5.2.3 框架中的ARC代碼 64 5.2.4 ARC空聲明變量 67 5.2.5 Objective-C命名約定 67 5.2.6 覆蓋默認行為 67 5.2.7 自由橋接 68 5.2.8 ARC內部原理 68 5.3 常見的ARC移植錯誤 69 5.4 小結 72 5.5 擴展閱讀 72 5.5.1 蘋果文檔 72 5.5.2 WWDC講座 72 5.5.3 博客 73
第6章 熟練使用表視圖 74 6.1 UITableView類的繼承關系 74 6.2 熟悉表視圖 75 6.2.1 UITableViewController 75 6.2.2 UITableViewCell 75 6.2.3 提高表視圖的滾動速度 75 6.2.4 自定義非重復表單元 82 6.2.5 表視圖最佳方案:編寫簡潔代碼,簡化控制器內容 83 6.3 小結 87 6.4 擴展閱讀 87 6.4.1 蘋果文檔 87 6.4.2 其他資源 87
第7章 集合視圖與自動布局 88 7.1 集合視圖 88 7.1.1 類與協議 88 7.1.2 示例 89 7.2 自動布局 97 7.2.1 使用自動布局 98 7.2.2 了解自動布局 98 7.2.3 相對布局約束 98 7.2.4 視覺化格式語言 101 7.2.5 調試布局錯誤 102 7.3 小結 103 7.4 擴展閱讀 104 7.14.1 蘋果文檔 104 7.14.2 WWDC講座 104
第8章 繪圖功能 105 8.1 iOS的不同繪圖系統 105 8.2 UIKit和視圖繪圖周期 106 8.3 視圖繪制與視圖布局 108 8.4 自定義視圖繪制 108 8.4.1 通過UIKit繪圖 109 8.4.2 路徑 109 8.4.3 理解坐標系 111 8.4.4 重新調整大小以及內容模式 114 8.4.5 變形 115 8.4.6 通過Core Graphics進行繪制 117 8.4.7 混用UIKit與Core Graphics 120 8.4.8 管理圖形上下文 121 8.5 優化UIView繪制 123 8.5.1 避免繪圖 123 8.5.2 緩存與后臺繪制 123 8.5.3 自定義繪圖與預渲染 123 8.5.4 像素對齊與模糊文本 124 8.5.5 透明、不透明與隱藏 125 8.6 CGLayer 125 8.7 小結 127 8.8 擴展閱讀 127 8.8.1 蘋果文檔 127 8.8.2 其他資源 128
第9章 Core Animation 129 9.1 視圖動畫 129 9.2 管理用戶交互 131 9.3 圖層繪制 132 9.3.1 直接設置內容 134 9.3.2 實現display方法 134 9.3.3 自定義繪圖 135 9.3.4 在自己的上下文中繪圖 136 9.4 移動對象 136 9.4.1 隱式動畫 137 9.4.2 顯式動畫 137 9.4.3 模型與表示 138 9.4.4 關于定時 140 9.5 三維動畫 142 9.6 美化圖層 145 9.7 用動作實現自動動畫 146 9.8 為自定義屬性添加動畫 147 9.9 Core Animation與線程 148 9.10 小結 149 9.11 擴展閱讀 149 9.11.1 蘋果文檔 149 9.11.2 其他資源 149
第10章 錯誤處理 150 10.1 錯誤處理模式 150 10.2 斷言 151 10.3 異常 153 10.4 捕獲與報告程序崩潰 153 10.5 錯誤和NSError 154 10.6 錯誤處理塊 156 10.7 日志 157 10.7.1 記錄敏感信息 158 10.7.2 獲取日志文件 159 10.8 小結 159 10.9 擴展閱讀 159 10.9.1 蘋果文檔 159 10.9.2 其他資源 159
第11章 位置服務 161 11.1 Core Location框架 161 11.1.1 獲取用戶位置 162 11.1.2 使用內置的羅盤獲取用戶前進方向 162 11.1.3 位置服務和用戶隱私 163 11.2 后臺位置服務 165 11.2.1 后臺獲取位置更新 165 11.2.2 顯著位置變更通知 165 11.2.3 區域監控(地理圍欄) 167 11.3 位置模擬 167 11.4 時刻關注電量消耗 168 11.5 小結 168 11.6 擴展閱讀 168
第三部分 選擇工具
第12章 表視圖常用UI范例 170 12.1 下拉刷新 170 12.2 無限滾動 173 12.3 行內編輯與鍵盤 175 12.4 UITableView的動畫效果 177 12.5 表視圖動畫的實際應用 178 12.5.1 實現折疊列表 178 12.5.2 實現選項抽屜 180 12.5.3 在表視圖單元格中使用手勢識別器 181 12.6 小結 181 12.7 擴展閱讀 182
第13章 多任務 183 13.1 后臺運行最佳實踐:能力越大責任越大 183 13.2 狀態恢復系統 185 13.2.1 測試狀態恢復系統 186 13.2.2 選擇性加入 186 13.2.3 應用啟動過程的變化 187 13.2.4 狀態恢復標識符 187 13.2.5 狀態編碼器與狀態解碼器 188 13.2.6 表視圖和集合視圖 191 13.2.7 狀態恢復系統的高級應用 192 13.3 多任務和運行循環簡介 192 13.4 以操作為中心的多任務開發 193 13.5 用GCD實現多任務 197 13.5.1 GCD和ARC 198 13.5.2 源和定時器 198 13.5.3 用分派屏障創建同步點 199 13.5.4 隊列目標和優先級 200 13.5.5 分派組 201 13.5.6 隊列關聯數據 202 13.5.7 分派數據 202 13.6 小結 203 13.7 擴展閱讀 203 13.7.1 蘋果文檔 203 13.7.2 WWDC講座 203 13.7.3 其他資源 203
第14章 REST解惑 204 14.1 REST簡介 205 14.2 選擇數據交換格式 205 14.2.1 在iOS中解析XML 205 14.2.2 在iOS中解析JSON 206 14.2.3 XML與JSON 207 14.2.4 模型版本化 208 14.3 假想的Web服務 208 14.4 重要提醒 209 14.5 RESTfulEngine架構(iHotelApp示例代碼) 209 14.5.1 NSURLConnection與第三方框架 209 14.5.2 創建RESTfulEngine 210 14.5.3 使用訪問令牌對API調用進行認證 213 14.5.4 在RESTfulEngine.m中覆蓋相關方法以添加自定義認證頭部 213 14.5.5 取消請求 214 14.5.6 請求響應 214 14.5.7 對JSON數據進行鍵值編碼 215 14.5.8 列表頁面的JSON對象與詳細頁面的JSON對象 217 14.5.9 嵌套JSON對象 217 14.5.10 少即是多 219 14.5.11 錯誤處理 219 14.5.12 本地化 221 14.5.13 使用分類處理其他格式 221 14.5.14 在iOS中提升性能的小技巧 222 14.6 小結 222 14.7 擴展閱讀 222 14.7.1 蘋果文檔 222 14.7.2 其他資源 223
第15章 通過安全服務鞏固系統安全 224 15.1 理解iOS沙盒 224 15.2 保證網絡通信的安全 225 15.2.1 證書工作原理 226 15.2.2 檢驗證書的有效性 228 15.2.3 判斷證書的可信度 231 15.3 使用文件保護 233 15.4 使用鑰匙串 234 15.5 使用加密 236 15.5.1 AES概要 237 15.5.2 使用PBKDF2將密碼轉換成密鑰 237 15.5.3 AES模式和填充 239 15.5.4 初始化向量 240 15.5.5 使用HMAC進行認證 241 15.5.6 錯誤的密碼 241 15.5.7 進行單槽加密 242 15.5.8 提高CommonCrypto的性能 244 15.5.9 組合使用加密和壓縮 247 15.6 小結 247 15.7 擴展閱讀 248 15.7.1 蘋果文檔 248 15.7.2 WWDC講座 248 15.7.3 其他資源 248
第16章 在多個蘋果平臺和蘋果設備上運行應用 249 16.1 開發多平臺應用 249 16.1.1 可配置的目標設置:Base SDK和Deployment Target 250 16.1.2 支持多個SDK時的注意事項:框架、類和方法 250 16.1.3 檢查框架、類和方法的可用性 252 16.2 檢測設備的功能 253 16.2.1 檢測設備及判斷功能 253 16.2.2 檢測硬件和傳感器 254 16.3 應用內發送Email和短信 258 16.4 檢查多任務支持 258 16.5 支持iPhone 5 259 16.6 UIRequiredDeviceCapabilities 260 16.7 小結 261 16.8 擴展閱讀 262 16.8.1 蘋果文檔 262 16.8.2 其他資源 262
第17章 國際化和本地化 263 17.1 什么是本地化 263 17.2 本地化字符串 264 17.3 對未本地化的字符串進行審查 265 17.4 格式化數字和日期 266 17.5 nib文件和Base Internationalization 269 17.6 本地化復雜字符串 270 17.7 小結 272 17.8 擴展閱讀 272 17.8.1 蘋果文檔 272 17.8.2 WWDC講座 272
第18章 通過應用內購買提高銷售業績 273 18.1 開始之前 273 18.2 應用內購買什么 273 18.2.1 禁止通過應用內購買出售的產品 274 18.2.2 重新思考你的商業模式 275 18.3 在iTunes Connect上設置產品配置 275 18.3.1 第一步:為你的應用創建一個新的App ID 276 18.3.2 第二步:生成配置文件 277 18.3.3 第三步:創建應用的產品項 277 18.3.4 第四步:創建應用內購買產品項 278 18.3.5 第五步:生成共享密鑰 279 18.3.6 第六步:創建測試賬戶 279 18.3.7 第七步:創建托管內容 279 18.4 實現應用內購買 281 18.5 MKStoreKit簡介 281 18.5.1 為什么要用MKStoreKit 281 18.5.2 MKStoreKit的設計 282 18.5.3 定制MKStoreKit 283 18.6 實現購買 285 18.7 下載托管內容 285 18.8 測試代碼 286 18.9 排錯 286 18.9.1 無效的產品ID 286 18.9.2 無法連接iTunes Store 286 18.9.3 你已經購買了該產品,但它尚未下載 287 18.10 小結 287 18.11 擴展閱讀 287 18.11.1 蘋果文檔 287 18.11.2 博客 287 18.11.3 其他資源 287
第19章 調試 288 19.1 LLDB 288 19.2 使用LLDB進行調試 288 19.2.1 dSYM文件 289 19.2.2 符號化 290 19.3 斷點 291 19.4 觀察點 294 19.5 LLDB控制臺 295 19.6 NSZombieEnabled標志 298 19.7 不同的崩潰類型 299 19.7.1 EXC_BAD_ACCESS 299 19.7.2 SIGSEGV 300 19.7.3 SIGBUS 300 19.7.4 SIGTRAP 300 19.7.5 EXC_ARITHMETIC 300 19.7.6 SIGILL 300 19.7.7 SIGABRT 301 19.7.8 看門狗超時 301 19.7.9 自定義錯誤信號處理程序 301 19.8 收集崩潰報告 302 19.9 第三方崩潰報告服務 303 19.10 小結 303 19.11 擴展閱讀 304 19.11.1 蘋果文檔 304 19.11.2 WWDC講座 304 19.11.3 其他資源 304
第20章 性能調優 305 20.1 性能思維模式 305 20.1.1 指導方針一:產品是為了取悅用戶才存在的 305 20.1.2 指導方針二:設備是為了方便用戶而存在的 305 20.1.3 指導方針三:做到極致 305 20.1.4 指導方針四:用戶的感知才是實際的 306 20.1.5 指導方針五:關注能帶來大收益的方面 306 20.2 歡迎走入Instruments的世界 306 20.3 查找內存問題 308 20.4 查找CPU問題 311 20.4.1 Accelerate框架 314 20.4.2 GLKit 315 20.5 繪圖性能 315 20.6 優化磁盤訪問和網絡訪問 317 20.7 小結 318 20.8 擴展閱讀 318 20.8.1 蘋果文檔 318 20.8.2 其他資源 318
第四部分 超越極限
第21章 故事板及自定義切換效果 320 21.1 初識故事板 320 21.1.1 實例化故事板 321 21.1.2 加載故事板中的視圖控制器 321 21.1.3 聯線 321 21.1.4 使用故事板來實現表視圖 323 21.2 自定義切換效果 324 21.2.1 還有一個優點 325 21.2.2 白璧微瑕 326 21.3 使用UIAppearance協議自定義視圖 326 21.4 小結 327 21.5 擴展閱讀 327 21.5.1 蘋果文檔 327 21.5.2 WWDC講座 327 21.5.3 其他資源 327
第22章 Cocoa的大招:鍵值編碼和觀察 328 22.1 鍵值編碼 328 22.1.1 用KVC賦值 330 22.1.2 用鍵路徑遍歷屬性 331 22.1.3 KVC和容器類 331 22.1.4 KVC和字典 335 22.1.5 KVC和非對象 336 22.1.6 用KVC實現高階消息傳遞 336 22.1.7 容器操作符 336 22.2 鍵值觀察 337 22.2.1 KVO和容器類 339 22.2.2 KVO是如何實現的 340 22.3 KVO的權衡 340 22.4 小結 342 22.5 擴展閱讀 342 22.5.1 蘋果文檔 342 22.5.2 其他資源 342
第23章 不同凡想:塊和函數式編程 343 23.1 什么是塊 343 23.1.1 為什么要用函數式編程 343 23.1.2 “函數式”UIAlertView 344 23.2 聲明塊 345 23.2.1 變量作用域 346 23.2.2 棧與堆 346 23.3 實現塊 347 23.4 塊和并發 349 23.4.1 GCD中的分派隊列 349 23.4.2 NSOperationQueue與GCD分派隊列 350 23.5 基于塊的Cocoa方法 351 23.5.1 UIView的動畫使用塊 351 23.5.2 展示和移除視圖控制器 352 23.5.3 TweetComposer 與應用程序中發送郵件(短信) 352 23.5.4 用NSDictionary的enum erationWithBlock遍歷字典 352 23.5.5 尋找基于塊的方法 353 23.6 支持情況 353 23.7 小結 353 23.8 擴展閱讀 354 23.8.1 蘋果文檔 354 23.8.2 博客 354 23.8.3 其他資源 354
第24章 離線支持 355 24.1 需要離線支持的原因 355 24.2 緩存策略 356 24.2.1 存儲緩存 356 24.2.2 緩存版本和失效 359 24.3 數據模型緩存 359 24.4 緩存版本控制 363 24.5 創建內存緩存 364 24.5.1 為AppCache設計內存緩存 365 24.5.2 處理內存警告 366 24.5.3 處理結束和進入后臺通知 367 24.6 創建URL緩存 367 24.6.1 過期模型 368 24.6.2 驗證模型 368 24.6.3 示例 368 24.6.4 用URL緩存來緩存圖片 369 24.7 小結 369 24.8 擴展閱讀 369 24.8.1 蘋果文檔 369 24.8.2 書籍 369 24.8.3 其他資源 369
第25章 云端數據 370 25.1 iCloud 370 25.2 第三方云服務提供商 372 25.3 Parse 373 25.3.1 Parse入門 373 25.3.2 Parse的頂層對象 374 25.3.3 代碼 374 25.4 StackMob 376 25.4.1 設置StackMob 376 25.4.2 登錄、上傳和獲取數據 377 25.4.3 StackMob自定義代碼 377 25.5 后端即服務的缺點 378 25.6 小結 378 25.7 擴展閱讀 378 25.7.1 蘋果文檔 378 25.7.2 WWDC講座 378 25.7.3 其他資源 379
第26章 精妙的文本布局 380 26.1 基本控件:字段、視圖和標簽 380 26.2 UIKit中的富文本 381 26.2.1 理解粗體、斜體和下劃線 381 26.2.2 屬性化字符串 382 26.2.3 段落樣式 384 26.2.4 屬性化字符串和HTML 384 26.3 用Web視圖顯示富文本 385 26.3.1 在Web視圖中顯示和訪問HTML 385 26.3.2 響應用戶交互 386 26.3.3 在滾動視圖和表格視圖中繪制Web視圖 386 26.4 Core Text 387 26.4.1 用CTFramesetter進行簡單的布局 387 26.4.2 為非連續路徑創建框架 388 26.4.3 排版器、文本行、連續文本和字形 390 26.4.4 沿著曲線繪制文本 391 26.5 小結 395 26.6 擴展閱讀 395 26.6.1 蘋果文檔 395 26.6.2 WWDC講座 395 26.6.3 其他資源 396
第27章 創建Core Foundation應用 397 27.1 Core Foundation類型 397 27.2 命名和內存管理 398 27.3 分配器 399 27.4 內省 400 27.5 字符串和數據 400 27.5.1 常量字符串 401 27.5.2 創建字符串 401 27.5.3 轉換為C字符串 402 27.5.4 其他字符串操作符 404 27.5.5 字符串的支持存儲 404 27.5.6 CFData 405 27.6 容器類型 405 27.6.1 CFArray 406 27.6.2 CFDictionary 406 27.6.3 CFSet和CFBag 406 27.6.4 其他容器類型 407 27.6.5 回調函數 407 27.7 自由橋接 408 27.8 小結 411 27.9 擴展閱讀 411 27.9.1 蘋果文檔 411 27.9.2 其他資源 411
第28章 深度解析Objective-C 412 28.1 理解類和對象 412 28.2 使用方法和屬性 414 28.3 消息傳遞如何工作 416 28.3.1 動態實現 417 28.3.2 快速轉發 419 28.3.3 普通轉發 422 28.3.4 轉發失敗 422 28.3.5 各種版本的objc_msgSend 423 28.4 方法混寫 423 28.5 ISA混寫 426 28.6 方法混寫與ISA混寫 427 28.7 小結 427 28.8 擴展閱讀 427 28.8.1 蘋果文檔 427 28.8.2 其他資源 428
索引 429 |
序: |
|