關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
iOS開(kāi)發(fā)指南
本書(shū)是iOS開(kāi)發(fā)權(quán)威教程, 以Swift和Objective-C兩種語(yǔ)言進(jìn)行講解。書(shū)中分5部分介紹如何從零起步編寫(xiě)并上線(xiàn)iOS應(yīng)用: 第一部分介紹iOS開(kāi)發(fā)的基礎(chǔ)知識(shí), 包括界面構(gòu)建技術(shù)、基本控件、協(xié)議、表視圖、界面布局、屏幕適配、導(dǎo)航、iPad應(yīng)用開(kāi)發(fā)、iOS設(shè)備手勢(shì)、Quartz 2D、iOS動(dòng)畫(huà)等; 第二部分介紹本地?cái)?shù)據(jù)持久化、數(shù)據(jù)交換格式和WebService; 第三部分為進(jìn)階篇, 介紹了定位服務(wù)、蘋(píng)果地圖、Contacts框架、應(yīng)用擴(kuò)展、用戶(hù)通知等內(nèi)容; 第四部分介紹測(cè)試、調(diào)試和優(yōu)化等相關(guān)知識(shí); 第五部分為實(shí)戰(zhàn)篇, 涵蓋代碼版本管理、項(xiàng)目依賴(lài)管理、App Store發(fā)布流程, 以及一個(gè)真實(shí)iOS應(yīng)用的設(shè)計(jì)、編程、測(cè)試與發(fā)布過(guò)程。
暢銷(xiāo)書(shū)全新升級(jí),累計(jì)印數(shù)6萬(wàn)多冊(cè)
Swift和Objective-C雙語(yǔ)講解 新增手勢(shì)識(shí)別、Quartz 2D繪圖技術(shù)、動(dòng)畫(huà)技術(shù)、用戶(hù)擴(kuò)展、用戶(hù)通知、Core Data等 數(shù)百個(gè)項(xiàng)目案例 + 一個(gè)真實(shí)項(xiàng)目開(kāi)發(fā)全過(guò)程 涵蓋測(cè)試驅(qū)動(dòng)開(kāi)發(fā)、性能優(yōu)化、版本控制和程序調(diào)試等
【關(guān)東升】
一個(gè)在IT領(lǐng)域摸爬滾打20年的程序員、培訓(xùn)師、作者,除本書(shū)外,還著有《從零開(kāi)始學(xué)Swift》《Android網(wǎng)絡(luò)游戲開(kāi)發(fā)實(shí)戰(zhàn)》《Cocos2d-x實(shí)戰(zhàn)》系列等書(shū)。
第一部分 基 礎(chǔ) 篇
第1章 開(kāi)篇綜述 2 1.1 iOS概述 2 1.1.1 iOS介紹 2 1.1.2 iOS 10新特性 2 1.2 開(kāi)發(fā)環(huán)境及開(kāi)發(fā)工具 3 1.3 本書(shū)約定 4 1.3.1 案例代碼約定 4 1.3.2 圖示的約定 5 1.3.3 方法命名約定 6 1.3.4 構(gòu)造函數(shù)命名約定 7 1.3.5 錯(cuò)誤處理約定 7 第2章 第一個(gè)iOS應(yīng)用程序 8 2.1 創(chuàng)建HelloWorld工程 8 2.1.1 通過(guò)Xcode創(chuàng)建工程 9 2.1.2 添加標(biāo)簽 11 2.1.3 運(yùn)行應(yīng)用 13 2.1.4 Xcode中的iOS工程模板 13 2.1.5 應(yīng)用剖析 14 2.2 應(yīng)用生命周期 16 2.2.1 非運(yùn)行狀態(tài)——應(yīng)用啟動(dòng)場(chǎng)景 18 2.2.2 點(diǎn)擊Home鍵——應(yīng)用退出場(chǎng)景 18 2.2.3 掛起重新運(yùn)行場(chǎng)景 21 2.2.4 內(nèi)存清除:應(yīng)用終止場(chǎng)景 21 2.3 設(shè)置產(chǎn)品屬性 22 2.3.1 Xcode中的工程和目標(biāo) 22 2.3.2 設(shè)置常用的產(chǎn)品屬性 24 2.4 iOS API簡(jiǎn)介 26 2.4.1 API概述 26 2.4.2 如何使用API幫助文檔 26 2.5 小結(jié) 28 第3章 Cocoa Touch框架與構(gòu)建應(yīng)用界面 29 3.1 視圖控制器 29 3.1.1 視圖控制器種類(lèi) 29 3.1.2 視圖的生命周期 29 3.2 視圖 30 3.2.1 UIView繼承層次結(jié)構(gòu) 30 3.2.2 視圖分類(lèi) 32 3.2.3 應(yīng)用界面構(gòu)建層次 33 3.3 使用故事板構(gòu)建界面 34 3.3.1 什么是故事板 34 3.3.2 場(chǎng)景和過(guò)渡 37 3.4 使用XIB文件構(gòu)建界面 38 3.4.1 重構(gòu)HelloWorld 38 3.4.2 XIB與故事板比較 42 3.5 使用純代碼構(gòu)建界面 42 3.5.1 重構(gòu)HelloWorld 42 3.5.2 視圖的幾個(gè)重要屬性 44 3.6 三種構(gòu)建界面技術(shù)討論 46 3.6.1 所見(jiàn)即所得 46 3.6.2 原型驅(qū)動(dòng)開(kāi)發(fā) 46 3.6.3 團(tuán)隊(duì)協(xié)同開(kāi)發(fā) 47 3.7 小結(jié) 47 第4章 UIView與視圖 48 4.1 標(biāo)簽與按鈕 48 4.1.1 Interface Builder實(shí)現(xiàn) 48 4.1.2 代碼實(shí)現(xiàn) 51 4.2 事件處理 53 4.2.1 Interface Builder實(shí)現(xiàn) 53 4.2.2 代碼實(shí)現(xiàn) 55 4.3 訪(fǎng)問(wèn)視圖 57 4.3.1 Interface Builder實(shí)現(xiàn) 57 4.3.2 代碼實(shí)現(xiàn) 58 4.4 TextField和TextView 60 4.4.1 Interface Builder實(shí)現(xiàn) 60 4.4.2 代碼實(shí)現(xiàn) 62 4.4.3 鍵盤(pán)的打開(kāi)和關(guān)閉 64 4.4.4 關(guān)閉和打開(kāi)鍵盤(pán)的通知 64 4.4.5 鍵盤(pán)的種類(lèi) 65 4.5 開(kāi)關(guān)控件、分段控件和滑塊控件 67 4.5.1 開(kāi)關(guān)控件 67 4.5.2 分段控件 69 4.5.3 滑塊控件 70 4.6 Web視圖:WKWebView類(lèi) 72 4.7 警告框和操作表 77 4.7.1 使用UIAlertController實(shí)現(xiàn)警告框 77 4.7.2 使用UIAlertController實(shí)現(xiàn)操作表 79 4.8 等待相關(guān)的控件與進(jìn)度條 81 4.8.1 活動(dòng)指示器ActivityIndicatorView 81 4.8.2 進(jìn)度條ProgressView 83 4.9 工具欄和導(dǎo)航欄 86 4.9.1 工具欄 86 4.9.2 導(dǎo)航欄 90 4.10 小結(jié) 95 第5章 委托協(xié)議、數(shù)據(jù)源協(xié)議與高級(jí)視圖 96 5.1 視圖中的委托協(xié)議和數(shù)據(jù)源協(xié)議 96 5.2 選擇器 96 5.2.1 日期選擇器 96 5.2.2 普通選擇器 101 5.2.3 數(shù)據(jù)源協(xié)議與委托協(xié)議 106 5.3 集合視圖 108 5.3.1 集合視圖的組成 108 5.3.2 集合視圖數(shù)據(jù)源協(xié)議與委托協(xié)議 109 5.4 案例:奧運(yùn)會(huì)比賽項(xiàng)目 109 5.4.1 創(chuàng)建工程 110 5.4.2 自定義集合視圖單元格 110 5.4.3 添加集合視圖 112 5.4.4 實(shí)現(xiàn)數(shù)據(jù)源協(xié)議 114 5.4.5 實(shí)現(xiàn)委托協(xié)議 115 5.5 小結(jié) 115 第6章 表視圖 116 6.1 概述 116 6.1.1 表視圖的組成 116 6.1.2 表視圖的相關(guān)類(lèi) 117 6.1.3 表視圖分類(lèi) 117 6.1.4 單元格的組成和樣式 119 6.1.5 數(shù)據(jù)源協(xié)議與委托協(xié)議 121 6.2 簡(jiǎn)單表視圖 122 6.2.1 實(shí)現(xiàn)協(xié)議方法 122 6.2.2 UIViewController根視圖控制器 123 6.2.3 UITableViewController根視圖控制器 129 6.3 自定義表視圖單元格 133 6.3.1 Interface Builder實(shí)現(xiàn) 133 6.3.2 代碼實(shí)現(xiàn) 137 6.4 添加搜索欄 138 6.5 分節(jié)表視圖 143 6.5.1 添加索引 143 6.5.2 分組 146 6.6 插入和刪除單元格 147 6.6.1 Interface Builder實(shí)現(xiàn) 149 6.6.2 代碼實(shí)現(xiàn) 154 6.7 移動(dòng)單元格 155 6.8 表視圖UI設(shè)計(jì)模式 157 6.8.1 分頁(yè)模式 157 6.8.2 下拉刷新模式 158 6.8.3 下拉刷新控件 159 6.9 小結(jié) 160 第7章 界面布局 161 7.1 界面布局概述 161 7.1.1 表單布局模式 161 7.1.2 列表布局模式 161 7.1.3 網(wǎng)格布局模式 162 7.2 iOS中各種“欄” 162 7.3 傳統(tǒng)界面布局問(wèn)題 163 7.4 Auto Layout布局技術(shù) 164 7.4.1 在Interface Builder中管理Auto Layout約束 164 7.4.2 案例:Auto Layout布局 164 7.5 靜態(tài)表布局 169 7.5.1 什么是靜態(tài)表 169 7.5.2 案例:iMessage應(yīng)用登錄界面 170 7.6 使用堆視圖StackView 174 7.6.1 堆視圖與布局 174 7.6.2 案例:堆視圖布局 175 7.7 小結(jié) 180 第8章 屏幕適配 181 8.1 iOS 屏幕的多樣性 181 8.1.1 iOS屏幕介紹 181 8.1.2 iOS的3種分辨率 182 8.1.3 獲得iOS設(shè)備的屏幕信息 183 8.2 Size Class與iOS多屏幕適配 184 8.2.1 在Xcode 6和Xcode 7中使用Size Class技術(shù) 184 8.2.2 Size Class的九宮格 185 8.2.3 Size Class的四個(gè)象限 186 8.2.4 在Xcode 8中使用Size Class 187 8.2.5 案例:使用Size Class 190 8.3 資源目錄與圖片資源適配 192 8.4 小結(jié) 195 第9章 視圖控制器與導(dǎo)航模式 196 9.1 概述 196 9.1.1 視圖控制器的種類(lèi) 196 9.1.2 導(dǎo)航模式 196 9.2 模態(tài)視圖 197 9.2.1 Interface Builder實(shí)現(xiàn) 199 9.2.2 代碼實(shí)現(xiàn) 205 9.3 平鋪導(dǎo)航 206 9.3.1 應(yīng)用場(chǎng)景 206 9.3.2 基于分屏導(dǎo)航的實(shí)現(xiàn) 208 9.3.3 基于電子書(shū)導(dǎo)航的實(shí)現(xiàn) 213 9.4 標(biāo)簽導(dǎo)航 219 9.4.1 應(yīng)用場(chǎng)景 219 9.4.2 Interface Builder實(shí)現(xiàn) 220 9.4.3 代碼實(shí)現(xiàn) 223 9.5 樹(shù)形結(jié)構(gòu)導(dǎo)航 225 9.5.1 應(yīng)用場(chǎng)景 225 9.5.2 Interface Builder實(shí)現(xiàn) 226 9.5.3 代碼實(shí)現(xiàn) 233 9.6 組合使用導(dǎo)航模式 235 9.6.1 應(yīng)用場(chǎng)景 235 9.6.2 Interface Builder實(shí)現(xiàn) 236 9.6.3 代碼實(shí)現(xiàn) 243 9.7 小結(jié) 246 第10章 iPad應(yīng)用開(kāi)發(fā) 247 10.1 iPad與iPhone應(yīng)用開(kāi)發(fā)的差異 247 10.1.1 應(yīng)用場(chǎng)景不同 247 10.1.2 導(dǎo)航模式不同 247 10.1.3 API不同 247 10.2 iPad樹(shù)形結(jié)構(gòu)導(dǎo)航 248 10.2.1 “郵件”應(yīng)用中的樹(shù)形結(jié)構(gòu)導(dǎo)航 248 10.2.2 Master-Detail應(yīng)用程序模板 249 10.2.3 使用Interface Builder實(shí)現(xiàn)SplitViewSample案例 254 10.2.4 使用代碼實(shí)現(xiàn)SplitViewSample案例 258 10.3 iPad模態(tài)視圖 261 10.3.1 “郵件”應(yīng)用中的模態(tài)導(dǎo)航 261 10.3.2 iPad模態(tài)導(dǎo)航相關(guān)API 262 10.3.3 使用Interface Builder實(shí)現(xiàn)ModalViewSample案例 264 10.3.4 使用代碼實(shí)現(xiàn)ModalViewSample案例 268 10.4 Popover視圖 271 10.4.1 Popover相關(guān)API 272 10.4.2 PopoverViewSample案例 272 10.5 分屏多任務(wù) 276 10.5.1 Slide Over多任務(wù) 276 10.5.2 分屏視圖多任務(wù) 278 10.5.3 畫(huà)中畫(huà)多任務(wù) 280 10.6 iPad分屏多任務(wù)適配開(kāi)發(fā) 280 10.6.1 分屏多任務(wù)前提條件 280 10.6.2 分屏多任務(wù)適配 281 10.7 小結(jié) 282 第11章 手勢(shì)識(shí)別 283 11.1 手勢(shì)種類(lèi) 283 11.2 手勢(shì)識(shí)別器 284 11.2.1 視圖對(duì)象與手勢(shì)識(shí)別 284 11.2.2 手勢(shì)識(shí)別狀態(tài) 285 11.2.3 實(shí)例:識(shí)別Tap手勢(shì) 285 11.2.4 實(shí)例:識(shí)別Long Press手勢(shì) 290 11.2.5 實(shí)例:識(shí)別Pan手勢(shì) 291 11.2.6 實(shí)例:Swipe手勢(shì) 293 11.2.7 實(shí)例:Rotation手勢(shì) 295 11.2.8 實(shí)例:Pinch手勢(shì) 297 11.2.9 實(shí)例:Screen Edge Pan手勢(shì) 299 11.3 小結(jié) 301 第12章 Quartz 2D繪圖技術(shù) 302 12.1 繪制技術(shù)基礎(chǔ) 302 12.1.1 視圖繪制周期 302 12.1.2 實(shí)例:填充屏幕 302 12.1.3 填充與描邊 305 12.1.4 繪制圖像和文本 306 12.2 Quartz圖形上下文 308 12.3 Quartz路徑 309 12.3.1 Quartz路徑概述 309 12.3.2 實(shí)例:使用貝塞爾曲線(xiàn) 311 12.4 Quartz坐標(biāo)變換 312 12.4.1 坐標(biāo)系 312 12.4.2 2D圖形的基本變換 315 12.4.3 CTM變換 317 12.4.4 仿射變換 322 12.5 小結(jié) 322 第13章 動(dòng)畫(huà)技術(shù) 323 13.1 視圖動(dòng)畫(huà) 323 13.1.1 動(dòng)畫(huà)塊 323 13.1.2 動(dòng)畫(huà)結(jié)束的處理 325 13.1.3 過(guò)渡動(dòng)畫(huà) 326 13.2 Core Animation框架 329 13.2.1 圖層 329 13.2.2 隱式動(dòng)畫(huà) 331 13.2.3 顯式動(dòng)畫(huà) 333 13.2.4 關(guān)鍵幀動(dòng)畫(huà) 335 13.2.5 使用路徑 336 13.3 小結(jié) 338 第二部分 數(shù)據(jù)與網(wǎng)絡(luò)通信篇 第14章 數(shù)據(jù)持久化 340 14.1 概述 340 14.1.1 沙箱目錄 340 14.1.2 持久化方式 341 14.2 實(shí)例:MyNotes應(yīng)用 341 14.3 屬性列表 343 14.4 使用SQLite數(shù)據(jù)庫(kù) 349 14.4.1 SQLite數(shù)據(jù)類(lèi)型 350 14.4.2 添加SQLite3庫(kù) 350 14.4.3 配置Swift環(huán)境 351 14.4.4 創(chuàng)建數(shù)據(jù)庫(kù) 351 14.4.5 查詢(xún)數(shù)據(jù) 353 14.4.6 修改數(shù)據(jù) 355 14.5 iOS 10中的Core Data技術(shù) 357 14.5.1 對(duì)象關(guān)系映射技術(shù) 357 14.5.2 添加Core Data支持 358 14.5.3 Core Data!359 14.6 案例:采用Core Data重構(gòu)MyNotes應(yīng)用 360 14.6.1 建模和生成實(shí)體 360 14.6.2 Core Data棧DAO 366 14.6.3 查詢(xún)數(shù)據(jù) 367 14.6.4 修改數(shù)據(jù) 369 14.7 小結(jié) 370 第15章 數(shù)據(jù)交換格式 371 15.1 XML數(shù)據(jù)交換格式 372 15.1.1 XML文檔結(jié)構(gòu) 372 15.1.2 解析XML文檔 373 15.2 案例:MyNotes應(yīng)用讀取XML數(shù)據(jù) 374 15.2.1 使用NSXML解析 376 15.2.2 使用TBXML解析 379 15.3 JSON數(shù)據(jù)交換格式 385 15.3.1 JSON文檔結(jié)構(gòu) 385 15.3.2 JSON數(shù)據(jù)編碼/解碼 386 15.4 案例:MyNotes應(yīng)用JSON解碼 387 15.5 小結(jié) 388 第16章 REST Web Service 389 16.1 概述 389 16.1.1 REST Web Service概念 389 16.1.2 HTTP協(xié)議 389 16.1.3 HTTPS協(xié)議 390 16.1.4 蘋(píng)果ATS限制 390 16.2 使用NSURLSession 391 16.2.1 NSURLSession API 392 16.2.2 簡(jiǎn)單會(huì)話(huà)實(shí)現(xiàn)GET請(qǐng)求 393 16.2.3 默認(rèn)會(huì)話(huà)實(shí)現(xiàn)GET請(qǐng)求 396 16.2.4 實(shí)現(xiàn)POST請(qǐng)求 397 16.2.5 下載數(shù)據(jù) 398 16.3 實(shí)例:使用NSURLSession重構(gòu)MyNotes 案例 400 16.3.1 插入方法 401 16.3.2 修改方法 402 16.3.3 刪除方法 402 16.4 使用AFNetworking框架 405 16.4.1 比較ASIHTTPRequest、AFNetworking和MKNetworkKit 405 16.4.2 安裝和配置AFNetworking框架 405 16.4.3 實(shí)現(xiàn)GET請(qǐng)求 407 16.4.4 實(shí)現(xiàn)POST請(qǐng)求 408 16.4.5 下載數(shù)據(jù) 408 16.4.6 上傳數(shù)據(jù) 410 16.5 使用為Swift設(shè)計(jì)的網(wǎng)絡(luò)框架:Alamofire 412 16.5.1 安裝和配置Alamofire框架 412 16.5.2 實(shí)現(xiàn)GET請(qǐng)求 413 16.5.3 實(shí)現(xiàn)POST請(qǐng)求 414 16.5.4 下載數(shù)據(jù) 414 16.5.5 上傳數(shù)據(jù) 415 16.6 反饋網(wǎng)絡(luò)信息改善用戶(hù)體驗(yàn) 416 16.6.1 使用下拉刷新控件改善用戶(hù)體驗(yàn) 416 16.6.2 使用活動(dòng)指示器控件 419 16.6.3 使用網(wǎng)絡(luò)活動(dòng)指示器 420 16.7 小結(jié) 421 第三部分 進(jìn) 階 篇 第17章 定位服務(wù) 424 17.1 定位服務(wù)概述 424 17.1.1 定位服務(wù)編程 425 17.1.2 測(cè)試定位服務(wù) 428 17.2 管理定位服務(wù) 432 17.2.1 應(yīng)用啟動(dòng)與停止下的定位服務(wù)管理 432 17.2.2 視圖切換下的定位服務(wù)管理 432 17.2.3 應(yīng)用前后臺(tái)切換下的定位服務(wù)管理 433 17.2.4 設(shè)置自動(dòng)暫停位置服務(wù) 436 17.2.5 后臺(tái)位置服務(wù)管理 436 17.3 地理信息編碼與反編碼 437 17.3.1 地理信息反編碼 437 17.3.2 實(shí)例:地理信息反編碼 437 17.3.3 地理信息編碼查詢(xún) 438 17.3.4 實(shí)例:地理信息編碼查詢(xún) 439 17.4 小結(jié) 440 第18章 蘋(píng)果地圖應(yīng)用 441 18.1 使用iOS蘋(píng)果地圖 441 18.1.1 顯示地圖 441 18.1.2 顯示3D地圖 445 18.2 添加標(biāo)注 446 18.2.1 實(shí)現(xiàn)查詢(xún) 447 18.2.2 在地圖上添加標(biāo)注 449 18.3 跟蹤用戶(hù)位置變化 450 18.4 使用程序外地圖 451 18.5 小結(jié) 454 第19章 訪(fǎng)問(wèn)通訊錄 455 19.1 通訊錄的安全訪(fǎng)問(wèn)設(shè)置 455 19.2 使用Contacts框架讀取聯(lián)系人信息 456 19.2.1 查詢(xún)聯(lián)系人 457 19.2.2 讀取單值屬性 460 19.2.3 讀取多值屬性 461 19.2.4 讀取圖片屬性 464 19.3 使用Contacts框架寫(xiě)入聯(lián)系人信息 464 19.3.1 創(chuàng)建聯(lián)系人 465 19.3.2 修改聯(lián)系人 467 19.3.3 刪除聯(lián)系人 468 19.4 使用系統(tǒng)提供的界面 469 19.4.1 選擇聯(lián)系人 470 19.4.2 顯示和修改聯(lián)系人 472 19.5 小結(jié) 475 第20章 iOS 10應(yīng)用擴(kuò)展 476 20.1 應(yīng)用擴(kuò)展概述 476 20.1.1 iOS 10應(yīng)用擴(kuò)展種類(lèi) 476 20.1.2 應(yīng)用擴(kuò)展工作原理 477 20.1.3 應(yīng)用擴(kuò)展的生命周期 478 20.2 Today應(yīng)用擴(kuò)展 478 20.2.1 使用Today應(yīng)用擴(kuò)展 479 20.2.2 實(shí)例:奧運(yùn)會(huì)倒計(jì)時(shí)牌 480 20.3 開(kāi)發(fā)表情包 483 20.3.1 iMessage應(yīng)用 483 20.3.2 表情包 484 20.3.3 實(shí)例:開(kāi)發(fā)表情包 484 20.4 Message框架 488 20.4.1 Message框架的主要API 488 20.4.2 消息布局 488 20.4.3 消息擴(kuò)展界面的收縮和展開(kāi) 489 20.4.4 消息應(yīng)用的生命周期 490 20.4.5 消息會(huì)話(huà) 490 20.4.6 實(shí)例:高斯模糊濾鏡 491 20.5 小結(jié) 494 第21章 重裝上陣的iOS 10用戶(hù)通知 495 21.1 用戶(hù)通知概述 495 21.1.1 通知種類(lèi) 495 21.1.2 通知界面 495 21.1.3 設(shè)置通知 497 21.2 開(kāi)發(fā)本地通知 498 21.2.1 開(kāi)發(fā)本地通知案例 498 21.2.2 請(qǐng)求授權(quán) 500 21.2.3 通知的創(chuàng)建與發(fā)送 501 21.2.4 通知接收后的處理 503 21.3 開(kāi)發(fā)推送通知 503 21.3.1 推送通知機(jī)理 504 21.3.2 生成SSL證書(shū) 504 21.3.3 iOS客戶(hù)端編程 513 21.3.4 在iOS設(shè)備上運(yùn)行客戶(hù)端 515 21.3.5 內(nèi)容提供者推送通知 518 21.4 小結(jié) 519 第四部分 測(cè)試、調(diào)試和優(yōu)化篇 第22章 找出程序中的bug——調(diào)試 522 22.1 Xcode調(diào)試工具 522 22.1.1 定位編譯錯(cuò)誤 522 22.1.2 查看和顯示日志 523 22.1.3 設(shè)置和查看斷點(diǎn) 524 22.1.4 調(diào)試工具 530 22.1.5 輸出窗口 532 22.1.6 變量查看窗口 532 22.1.7 查看線(xiàn)程 533 22.2 LLDB調(diào)試工具 535 22.2.1 斷點(diǎn)命令 535 22.2.2 觀察點(diǎn)命令 537 22.2.3 查看變量和計(jì)算表達(dá)式命令 538 22.3 日志與斷言輸出 541 22.3.1 使用NSLog函數(shù) 541 22.3.2 使用斷言 542 22.4 異常棧報(bào)告分析 543 22.4.1 跟蹤異常棧 543 22.4.2 分析棧報(bào)告 545 22.5 在iOS設(shè)備上調(diào)試 546 22.5.1 Xcode設(shè)置 546 22.5.2 設(shè)備設(shè)置 546 22.6 Xcode設(shè)備管理工具 548 22.6.1 查看設(shè)備上的應(yīng)用程序 548 22.6.2 設(shè)備日志 550 22.7 小結(jié) 551 第23章 iOS測(cè)試驅(qū)動(dòng)與單元測(cè)試 552 23.1 測(cè)試驅(qū)動(dòng)的軟件開(kāi)發(fā)概述 552 23.1.1 測(cè)試驅(qū)動(dòng)的軟件開(kāi)發(fā)流程 552 23.1.2 測(cè)試驅(qū)動(dòng)的軟件開(kāi)發(fā)案例 553 23.1.3 iOS單元測(cè)試框架 555 23.2 使用XCTest測(cè)試框架 555 23.2.1 添加X(jué)CTest到工程 555 23.2.2 編寫(xiě)XCTest測(cè)試方法 558 23.2.3 運(yùn)行測(cè)試用例目標(biāo) 561 23.2.4 分析測(cè)試報(bào)告 562 23.3 異步單元測(cè)試 564 23.4 性能測(cè)試 567 23.4.1 測(cè)試用例代碼 568 23.4.2 分析測(cè)試結(jié)果 568 23.5 小結(jié) 571 第24章 iOS應(yīng)用UI測(cè)試 572 24.1 UI測(cè)試概述 572 24.2 添加UI測(cè)試到工程 572 24.2.1 創(chuàng)建工程時(shí)添加UI測(cè)試框架 572 24.2.2 在現(xiàn)有工程中添加UI測(cè)試用例目標(biāo) 573 24.3 錄制腳本 575 24.3.1 錄制之前的準(zhǔn)備 575 24.3.2 錄制過(guò)程 575 24.3.3 修改錄制腳本 577 24.4 訪(fǎng)問(wèn)UI元素 577 24.4.1 UI元素的層次結(jié)構(gòu)樹(shù) 577 24.4.2 UI測(cè)試中相關(guān)API 579 24.5 表示邏輯組件測(cè)試最佳實(shí)踐 579 24.5.1 備忘錄查詢(xún)操作 580 24.5.2 增加備忘錄操作 580 24.5.3 刪除備忘錄操作 581 24.5.4 顯示備忘錄詳細(xì)信息操作 582 24.6 小結(jié) 582 第25章 讓你的程序“飛”起來(lái)——性能優(yōu)化 583 25.1 內(nèi)存優(yōu)化 583 25.1.1 內(nèi)存管理 583 25.1.2 使用Analyze工具檢查內(nèi)存泄漏 583 25.1.3 使用Instruments工具檢查內(nèi)存泄漏 587 25.1.4 使用Instruments工具檢查僵尸對(duì)象 592 25.1.5 autorelease的使用問(wèn)題 594 25.1.6 響應(yīng)內(nèi)存警告 595 25.2 優(yōu)化資源文件 596 25.2.1 圖片文件優(yōu)化 597 25.2.2 音頻文件優(yōu)化 598 25.3 延遲加載 599 25.3.1 資源文件的延遲加載 599 25.3.2 故事板文件的延遲加載 603 25.3.3 XIB文件的延遲加載 605 25.4 數(shù)據(jù)持久化的優(yōu)化 607 25.4.1 使用文件 607 25.4.2 使用SQLite數(shù)據(jù)庫(kù) 611 25.4.3 使用Core Data 612 25.5 可重用對(duì)象的使用 613 25.5.1 表視圖中的可重用對(duì)象 614 25.5.2 集合視圖中的可重用對(duì)象 615 25.5.3 地圖視圖中的可重用對(duì)象 617 25.6 并發(fā)處理 618 25.6.1 一些概念 618 25.6.2 主線(xiàn)程阻塞問(wèn)題 618 25.6.3 選擇NSThread、NSOperation還是GCD 619 25.6.4 GCD技術(shù) 619 25.7 小結(jié) 620 第五部分 實(shí) 戰(zhàn) 篇 第26章 管理好你的程序代碼——代碼版本控制 622 26.1 概述 622 26.1.1 版本控制歷史 622 26.1.2 基本概念 623 26.2 Git代碼版本控制 623 26.2.1 服務(wù)器搭建 623 26.2.2 Gitolite服務(wù)器管理 625 26.2.3 Git常用命令 627 26.2.4 Git分支 628 26.2.5 Git協(xié)同開(kāi)發(fā) 632 26.2.6 Xcode中Git的配置與使用 634 26.3 GitHub代碼托管服務(wù) 642 26.3.1 創(chuàng)建和配置GitHub賬號(hào) 642 26.3.2 創(chuàng)建代碼庫(kù) 645 26.3.3 刪除代碼庫(kù) 646 26.3.4 派生代碼庫(kù) 647 26.3.5 管理組織 650 26.4 小結(jié) 653 第27章 項(xiàng)目依賴(lài)管理 654 27.1 使用CocoaPods工具管理依賴(lài) 654 27.1.1 安裝CocoaPods 654 27.1.2 搜索庫(kù) 655 27.1.3 項(xiàng)目與第三方庫(kù)搭配形式 656 27.1.4 實(shí)例:靜態(tài)鏈接庫(kù)形式管理依賴(lài) 657 27.1.5 實(shí)例:框架形式管理依賴(lài) 659 27.2 使用Carthage工具管理依賴(lài) 660 27.2.1 安裝Carthage 660 27.2.2 項(xiàng)目與第三方庫(kù)搭配形式 661 27.2.3 Cartfile文件 661 27.2.4 實(shí)例:重構(gòu)MyNotes依賴(lài)關(guān)系 662 27.3 小結(jié) 664 第28章 把應(yīng)用放到App Store上 665 28.1 收官 665 28.1.1 在Xcode 中添加圖標(biāo) 665 28.1.2 在Xcode中添加啟動(dòng)界面 668 28.1.3 調(diào)整Identity和Deployment Info屬性 671 28.2 為發(fā)布進(jìn)行編譯 672 28.2.1 創(chuàng)建開(kāi)發(fā)者證書(shū) 672 28.2.2 創(chuàng)建App ID 675 28.2.3 創(chuàng)建描述文件 676 28.2.4 發(fā)布編譯 679 28.3 發(fā)布上架 680 28.3.1 創(chuàng)建應(yīng)用 681 28.3.2 應(yīng)用定價(jià) 683 28.3.3 基本信息輸入 684 28.3.4 上傳應(yīng)用 687 28.3.5 提交審核 689 28.4 常見(jiàn)審核不通過(guò)的原因 691 28.4.1 功能問(wèn)題 691 28.4.2 用戶(hù)界面問(wèn)題 691 28.4.3 商業(yè)問(wèn)題 691 28.4.4 不當(dāng)內(nèi)容 691 28.4.5 其他問(wèn)題 692 28.5 小結(jié) 692 第29章 iOS開(kāi)發(fā)項(xiàng)目實(shí)戰(zhàn)——2020東京奧運(yùn)會(huì)應(yīng)用開(kāi)發(fā)及 App Store發(fā)布 693 29.1 應(yīng)用分析與設(shè)計(jì) 693 29.1.1 應(yīng)用概述 693 29.1.2 需求分析 693 29.1.3 原型設(shè)計(jì) 694 29.1.4 數(shù)據(jù)庫(kù)設(shè)計(jì) 694 29.2 任務(wù)1:創(chuàng)建應(yīng)用工程 695 29.2.1 迭代1.1:創(chuàng)建工程 696 29.2.2 迭代1.2:發(fā)布到GitHub 696 29.3 任務(wù)2:數(shù)據(jù)庫(kù)與數(shù)據(jù)持久化邏輯組件 開(kāi)發(fā) 696 29.3.1 迭代2.1:編寫(xiě)數(shù)據(jù)庫(kù)DDL腳本 696 29.3.2 迭代2.2:插入初始數(shù)據(jù)到數(shù)據(jù)庫(kù) 697 29.3.3 迭代2.3:數(shù)據(jù)庫(kù)版本控制 697 29.3.4 迭代2.4:配置數(shù)據(jù)持久化邏輯組件 698 29.3.5 迭代2.5:編寫(xiě)實(shí)體類(lèi) 698 29.3.6 迭代2.6:編寫(xiě)DAO類(lèi) 700 29.3.7 迭代2.7:數(shù)據(jù)庫(kù)幫助類(lèi)DBHelper 704 29.3.8 迭代2.8:發(fā)布到GitHub 706 29.4 任務(wù)3:表示邏輯組件開(kāi)發(fā) 706 29.4.1 迭代3.1:使用資源目錄管理圖片和圖標(biāo)資源 707 29.4.2 迭代3.2:根據(jù)原型設(shè)計(jì)初步設(shè)計(jì)故事板 708 29.4.3 迭代3.3:“首頁(yè)”模塊 709 29.4.4 迭代3.4:“比賽項(xiàng)目”模塊 710 29.4.5 迭代3.5:“比賽日程”模塊 714 29.4.6 迭代3.6:“倒計(jì)時(shí)”模塊 718 29.4.7 迭代3.7:“關(guān)于我們”模塊 719 29.4.8 迭代3.8:發(fā)布到GitHub 720 29.5 任務(wù)4:收工 720 29.5.1 迭代4.1:添加圖標(biāo) 720 29.5.2 迭代4.2:設(shè)計(jì)和添加啟動(dòng)界面 720 29.5.3 迭代4.3:性能測(cè)試與改善 721 29.5.4 迭代4.4:發(fā)布到GitHub 722 29.5.5 迭代4.5:在App Store上發(fā)布應(yīng)用 722 29.6 小結(jié) 722
你還可能感興趣
我要評(píng)論
|