iOS 開發指南:從Hello World到App Store上架(第4版) iOS开发指南 从Hello World到App Store上架 第4版
關東升
- 出版商: 人民郵電
- 出版日期: 2016-06-01
- 售價: $714
- 語言: 簡體中文
- 頁數: 802
- 裝訂: 平裝
- ISBN: 7115423180
- ISBN-13: 9787115423184
- 
    相關分類:
    
      Apple Developer
 
下單後立即進貨 (約4週~6週)
買這商品的人也買了...
- 
                
                   學會 Objective-C 的 24 堂課, 3/e (針對 XCode 5.x 與 iOS 7 全新改版) 學會 Objective-C 的 24 堂課, 3/e (針對 XCode 5.x 與 iOS 7 全新改版)$480$379
- 
                
                   中老年人快樂學電腦:Office 2013 (Word / Excel / PowerPoint / Outlook)<超大圖解好閱讀,教學影片好上手> 中老年人快樂學電腦:Office 2013 (Word / Excel / PowerPoint / Outlook)<超大圖解好閱讀,教學影片好上手>$420$332
- 
                
                   ASP.NET MVC 5 網站開發美學 ASP.NET MVC 5 網站開發美學$780$616
- 
                
                   精通 Python|運用簡單的套件進行現代運算 (Introducing Python: Modern Computing in Simple Packages) 精通 Python|運用簡單的套件進行現代運算 (Introducing Python: Modern Computing in Simple Packages)$780$616
- 
                
                   完整學會 Git, GitHub, Git Server 的24堂課 完整學會 Git, GitHub, Git Server 的24堂課$360$284
- 
                
                   $245基於 Bootstrap 和 Knockout.js 的 ASP.NET MVC 開發實戰 (ASP.Net MVC 5 with Bootstrap and Knockout.Js: Building Dynamic, Responsive Web Applications) $245基於 Bootstrap 和 Knockout.js 的 ASP.NET MVC 開發實戰 (ASP.Net MVC 5 with Bootstrap and Knockout.Js: Building Dynamic, Responsive Web Applications)
- 
                
                   $147OpenCV 3 計算機視覺 : Python 語言實現, 2/e (Learning OpenCV 3 Computer Vision with Python, 2/e) $147OpenCV 3 計算機視覺 : Python 語言實現, 2/e (Learning OpenCV 3 Computer Vision with Python, 2/e)
- 
                
                   $301軟技能代碼之外的生存指南 (Soft Skills : The software developer's life manual) $301軟技能代碼之外的生存指南 (Soft Skills : The software developer's life manual)
- 
                
                   Laravel 框架關鍵技術解析 Laravel 框架關鍵技術解析$474$450
- 
                
                   Python 機器學習 (Python Machine Learning) Python 機器學習 (Python Machine Learning)$580$452
- 
                
                   寫給 PM、RD 與設計師看的設計需求分析─使用者想要的應用程式都是這樣打造出來的 (Designing the Requirements: Building Applications that the User Wants and Needs) 寫給 PM、RD 與設計師看的設計需求分析─使用者想要的應用程式都是這樣打造出來的 (Designing the Requirements: Building Applications that the User Wants and Needs)$580$458
- 
                
                   $474C++11/14 高級編程 : Boost 程序庫探秘, 3/e $474C++11/14 高級編程 : Boost 程序庫探秘, 3/e
- 
                
                   $654Linux 命令行與 shell 腳本編程大全, 3/e (Linux Command Line and Shell Scripting Bible, 3/e) $654Linux 命令行與 shell 腳本編程大全, 3/e (Linux Command Line and Shell Scripting Bible, 3/e)
- 
                
                  .jpg) Python + Spark 2.0 + Hadoop 機器學習與大數據分析實戰 Python + Spark 2.0 + Hadoop 機器學習與大數據分析實戰$680$530
- 
                
                   網站擷取|使用 Python (Web Scraping with Python: Collecting Data from the Modern Web) 網站擷取|使用 Python (Web Scraping with Python: Collecting Data from the Modern Web)$580$458
- 
                
                   Python 機器學習及實踐 --- 從零開始通往 Kaggle 競賽之路 Python 機器學習及實踐 --- 從零開始通往 Kaggle 競賽之路$294$279
- 
                
                   iOS 10 程式設計實戰 - Swift 3 + Apple Watch 快速上手的開發技巧200+ iOS 10 程式設計實戰 - Swift 3 + Apple Watch 快速上手的開發技巧200+$540$427
- 
                
                   學會 Swift 3 程式設計的 21堂課 學會 Swift 3 程式設計的 21堂課$450$356
- 
                
                   今天不學機器學習,明天就被機器取代:從 Python 入手+演算法 今天不學機器學習,明天就被機器取代:從 Python 入手+演算法$590$502
- 
                
                   $294C# 多線編程實戰 $294C# 多線編程實戰
- 
                
                   前端&行動網頁設計速成班-Bootstrap 4 + CSS3 + HTML5 + JavaScript 前端&行動網頁設計速成班-Bootstrap 4 + CSS3 + HTML5 + JavaScript$520$411
- 
                
                   Python 自動化的樂趣|搞定重複瑣碎 & 單調無聊的工作 (中文版) (Automate the Boring Stuff with Python: Practical Programming for Total Beginners) Python 自動化的樂趣|搞定重複瑣碎 & 單調無聊的工作 (中文版) (Automate the Boring Stuff with Python: Practical Programming for Total Beginners)$500$425
- 
                
                  深度學習快速入門 — 使用 TensorFlow (Getting started with TensorFlow)$360$281
- 
                
                   演算法技術手冊, 2/e (Algorithms in a Nutshell: A Practical Guide, 2/e) 演算法技術手冊, 2/e (Algorithms in a Nutshell: A Practical Guide, 2/e)$580$458
- 
                
                   $474Tensorflow:實戰Google深度學習框架 $474Tensorflow:實戰Google深度學習框架
商品描述
<內容介紹>
本書是iOS開發傑出指南,分5部分講解如何從零起步編寫並上線iOS應用。首部分介紹iOS開發基礎知識,包括界面構建技術、基本控件、協議、表視圖、屏幕適配、導航、分屏多任務等。第二部分介紹設計與架構的相關知識,包括設計模式、分層模式、本地數據持久化等。第三部分為進階篇,包括設置與配置、本地化、Contacts與ContactsUI框架、數據交換格式、Web Service、定位服務、蘋果地圖等內容。第四部分介紹測試、調試和優化等相關知識。第五部分為實戰篇,涵蓋代碼版本管理、項目依賴管理、App Store發布流程,以及兩個真實iOS應用的分析設計、編程、測試與分佈過程。本書同時提供Swift和Objective-C兩版代碼。
<章節目錄>
第一部分基礎篇
第1章開篇綜述2 
1.1 iOS概述2 
1.1.1 iOS介紹2 
1.1.2 iOS 9新特性2 
1.2開發環境及開發工具3 
1.3本書約定4 
1.3.1案例代碼約定4 
1.3. 2圖示的約定5 
1.3.3方法命名約定6 
1.3.4構造函數命名約定7 
1.3.5錯誤處理約定8 
第2章第一個iOS應用程序10 
2.1創建HelloWorld工程10 
2.1.1創建工程10 
2.1 .2 Xcode中的iOS工程模板14 
2.1.3應用剖析15 
2.2應用生命週期17 
2.2.1非運行狀態——應用啟動場景19 
2.2.2點擊Home鍵——應用退出場景20 
2.2.3掛起重新運行場景22 
2.2.4內存清除:應用終止場景23 
2.3設置產品屬性23 
2.3.1 Xcode中的工程和目標23 
2.3.2設置常用的產品屬性26 
2.4 iOS API簡介27 
2.4.1 API概述27 
2.4. 2如何使用API幫助29 
2.5小結32 
第3章Cocoa Touch框架與構建應用界面33 
3.1視圖控制器33 
3.1.1視圖控制器種類33 
3.1.2視圖的生命週期33 
3.2視圖35 
3.2.1 UIView繼承層次結構35 
3.2.2視圖分類37 
3.2.3應用界面構建層次37 
3.3使用故事板構建界面38 
3.3.1什麼是故事板39 
3.3.2場景和過渡41 
3.4使用XIB文件構建界面42 
3.4.1重構HelloWorld 42 
3.4.2 XIB與故事板比較45 
3.5使用純代碼構建界面45 
3.5.1重構HelloWorld 46 
3.5.2視圖的幾個重要屬性47 
3.6 3種構建界面技術討論49 
3.6.1所見即所得49 
3.6.2原型驅動開發49 
3.6.3團隊協同開發49 
3.7小結50 
第4章UIView與視圖51 
4.1標籤與按鈕51 
4.1.1 Interface Builder實現51 
4.1.2代碼實現55 
4.2事件處理56 
4.2.1 Interface Builder實現56 
4.2.2代碼實現59 
4.3訪問視圖60 
4.3.1 Interface Builder實現60 
4.3.2代碼實現62 
4.4 TextField和TextView 63 
4.4.1 Interface Builder實現64 
4.4.2代碼實現65 
4.4.3鍵盤的打開和關閉67 
4.4.4關閉和打開鍵盤的通知68 
4.4.5鍵盤的種類69 
4.5開關控件、分段控件和滑塊控件70 
4.5.1開關控件71 
4.5.2分段控件72 
4.5.3滑塊控件74 
4.6 Web視圖:WKWebView類76 
4.7警告框和操作表80 
4.7.1 UIAlertController實現警告框81 
4.7.2 UIAlertController實現操作表83 
4.8等待相關的控件與進度條84 
4.8.1活動指示器ActivityIndicatorView 85 
4.8.2進度條ProgressView 87 
4.9工具欄和導航欄90 
4.9.1工具欄90 
4.9.2導航欄94 
4.10小結98 
第5章委託協議、數據源協議與高級視圖99 
5.1視圖中的委託協議和數據源協議99 
5.2選擇器99 
5.2.1日期選擇器99 
5.2.2普通選擇器104 
5.2.3數據源協議與委託協議109 
5.3集合視圖111 
5.4實例:Interface Builder實現奧運會比賽
項目112 
5.4.1添加集合視圖113 
5.4.2添加集合視圖單元格114 
5.4.3數據源協議與委託協議118 
5.5實例:代碼實現奧運會比賽項目120 
5.5.1添加集合視圖120 
5.5.2自定義集合視圖單元格122 
5.6小結123 
第6章表視圖124 
6.1概述124 
6.1.1表視圖的組成124 
6.1.2表視圖的相關類125 
6.1.3表視圖分類125 
6.1.4單元格的組成和樣式127 
6.1.5數據源協議與委託協議129 
6.2簡單表視圖129 
6.2.1實現協議方法130 
6.2.2 UIViewController根視圖控制器130 
6.2.3 UITableViewController根視圖
控制器137 
6.3自定義表視圖單元格140 
6.3.1 Interface Builder實現141 
6.3. 2代碼實現145 
6.4添加搜索欄146 
6.5分節表視圖150 
6.5.1添加索引150 
6.5.2分組153 
6.6靜態表與界面佈局154 
6.7插入和刪除單元格160 
6.7.1 Interface Builder實現162 
6.7.2代碼實現167 
6.8移動單元格169 
6.9表視圖UI設計模式171 
6.9.1分頁模式171 
6.9.2下拉刷新模式171 
6.9.3下拉刷新控件172 
6.10小結174 
第7章界面佈局與屏幕適配175 
7.1界面佈局概述175 
7.2 iOS界面佈局設計模式176 
7.2.1表單佈局模式176 
7.2.2列表佈局模式176 
7.2.3網格佈局模式177 
7.3傳統佈局技術177 
7.4 Auto Layout佈局技術179 
7.4.1 Interface Builder中管理Auto Layout 
約束179 
7.4.2實例:Auto Layout佈局180 
7.5 iOS 9堆視圖StackView 185 
7.5.1堆視圖與佈局185 
7.5.2實例:堆視圖佈局186 
7.6 iOS屏幕的多樣性191 
7.6.1 iOS屏幕介紹191 
7.6.2 iOS的3種分辨率192 
7.6.3獲得iOS設備屏幕信息193 
7.7 Size Class與iOS多屏幕適配194 
7.7.1 Interface Builder中使用Size Class 195 
7.7.2 Size Class的九宮格195 
7.7. 3實例:使用Size Class 196 
7.8資源目錄與圖片資源適配201 
7.9小結204 
第8章視圖控制器與導航模式205 
8.1概述205 
8.1.1視圖控制器的種類205 
8.1.2導航模式205 
8.2模態視圖207 
8.2.1 Interface Builder實現208 
8.2.2代碼實現214 
8.3平鋪導航215 
8.3.1應用場景215 
8.3.2基於分屏導航的實現217 
8.3.3基於電子書導航的實現223 
8.4標籤導航228 
8.4.1應用場景229 
8.4.2 Interface Builder實現230 
8.4.3代碼實現234 
8.5樹形結構導航235 
8.5.1應用場景235 
8.5.2 Interface Builder實現236 
8.5.3代碼實現244 
8.6組合使用導航模式245 
8.6.1應用場景246 
8.6.2 Interface Builder實現246 
8.6.3代碼實現254 
8.7小結257 
第9章iPad應用開發258 
9.1 iPad與iPhone應用開發的差異258 
9.1.1應用場景不同258 
9.1.2導航模式不同258 
9.1.3 API不同258 
9.2 iPad樹形結構導航259 
9.2.1郵件應用中的樹形結構導航259 
9.2.2 Master-Detail應用程序模板260 
9.2.3 Interface Builder實現SplitViewSample案例266 
9.2.4代碼實現SplitViewSample案例270 
9.3 iPad模態視圖273 
9.3.1郵件應用中的模態導航273 
9.3.2 iPad模態導航相關API 275 
9.3.3 Interface Builder實現ModalView- 
Sample案例277 
9.3.4代碼實現ModalViewSample案例281 
9.4 Popover(浮動層)視圖284 
9.4.1 Popover相關API 284 
9.4.2 PopoverViewSample案例285 
9.5 iOS 9分屏多任務289 
9.5.1 Slide Over多任務289 
9.5.2分屏視圖多任務290 
9.5.3畫中畫多任務293 
9.6 iPad分屏多任務適配開發293 
9.6.1分屏多任務前提條件293 
9.6.2分屏多任務適配294 
9.7小結295 
第二部分設計與架構篇
第10章iOS常用設計模式298 
10.1單例模式298 
10.1.1問題提出298 
10.1.2 Objective-C實現原理298 
10.1.3 Swift實現原理299 
10.1.4應用案例300 
10.2委託模式301 
10.2.1問題提出301 
10.2.2實現原理303 
10.2.3應用案例306 
10.3觀察者模式309 
10.3.1問題提出309 
10.3.2實現原理310 
10.3.3通知機制和KVO機制311 
10.4再談MVC模式317 
10.4.1 MVC模式概述317 
10.4.2 Cocoa Touch中的MVC模式318 
10.5小結320 
第11章iOS分層架構設計321 
11.1低耦合企業級系統架構設計321 
11.2 iOS分層架構設計322 
11.2.1工程與工作空間322 
11.2.2靜態鏈接庫323 
11.2.3框架323 
11.2.4 16種分層模式324 
11.3實例:MyNotes應用325 
11.4基於同一工程的分層327 
11.4.1採用純Swift語言實現:PSSS 
模式327 
11.4.2採用純Objective-C語言實現:
POOO模式330 
11.4.3採用Swift調用Objective-C的
混合搭配實現:PSOO模式334 
11.5基於同一工作空間靜態鏈接庫實現的WLSOO 
模式335 
11.5.1使用工作空間335 
11.5.2添加數據持久層工程336 
11.5.3建立業務邏輯層與數據持久層依賴
關係337 
11.5.4建立表示層與業務邏輯層依賴
關係339 
11.6基於同一工作空間框架實現的WFSSS 
模式339 
11.6.1創建框架工程340 
11.6.2建立依賴關係341 
11.6.3代碼重構342 
11.7基於同一工作空間框架實現的WFOOO 
模式344 
11.7.1設置Public頭文件344 
11.7.2設置保護傘頭文件345 
11.7.3代碼重構345 
11.8基於同一工作空間框架實現的WFSOO 
模式346 
11.8.1設置Public頭文件346 
11.8.2設置保護傘頭文件346 
11.8.3建立表示層與業務邏輯層依賴
關係346 
11.8.4代碼重構346 
11.9基於同一工作空間框架實現的WFOSS 
模式346 
11.9.1設置Public頭文件346 
11.9.2設置Swift代碼嵌入應用347 
11.9.3代碼重構347 
11.10基於同一個工程不同目標框架實現的
TFSOO模式348 
11.10.1使用目標348 
11.10.2添加框架目標348 
11.11小結349 
第12章數據持久化350 
12.1概述350 
12.1.1沙箱目錄350 
12.1.2持久化方式351 
12.2屬性列表351 
12.3對象歸檔357 
12.4使用SQLite數據庫361 
12.4.1 SQLite數據類型361 
12.4. 2配置Objective-C框架工程環境362 
12.4.3配置Swift框架工程環境362 
12.4.4創建數據庫364 
12.4.5查詢數據365 
12.4.6修改數據368 
12.5 Core Data 370 
12.5.1 ORM 370 
12.5.2 Core Data棧371 
12.5.3建模和生成實體374 
12.5.4採用Core Data分層架構設計380 
12.5.5查詢數據382 
12.5.6修改數據384 
12.6小結385 
第三部分進階篇
第13章應用程序設置388 
13.1概述388 
13.1.1設置388 
13.1.2配置389 
13.2應用程序設置包390 
13.3設置項目種類392 
13.3.1文本字段395 
13.3.2開關398 
13.3.3滑塊399 
13.3.4值列表400 
13.3.5子界面401 
13.4讀取設置403 
13.5小結405 
第14章本地化406 
14.1概述406 
14.1.1需要本地化的內容406 
14.1.2本地化目錄結構409 
14.2文本信息本地化410 
14.2.1系統按鈕和信息本地化410 
14.2.2應用名稱本地化411 
14.2.3程序代碼輸出的靜態文本本地化413 
14.2.4使用genstring工具414 
14.3故事板和XIB文件本地化415 
14.3.1使用Base Internationalization技術415 
14.3.2 Auto Layout與本地化417 
14.4資源文件本地化419 
14.4.1圖片資源文件本地化419 
14.4.2聲音資源文件本地化420 
14.5小結421 
第15章iOS 9中訪問通訊錄422 
15.1通訊錄的安全訪問設置422 
15.2使用Contacts框架讀取聯繫人信息423 
15.2.1查詢聯繫人423 
15.2.2讀取單值屬性426 
15.2.3讀取多值屬性428 
15.2.4讀取圖片屬性430 
15.3使用Contacts框架寫入聯繫人信息430 
15.3.1創建聯繫人431 
15.3.2修改聯繫人433 
15.3.3刪除聯繫人434 
15.4使用系統提供界面435 
15.4.1選擇聯繫人435 
15.4.2顯示和修改聯繫人438 
15.4.3創建聯繫人441 
15.5小結444 
第16章數據交換格式445 
16.1 XML數據交換格式446 
16.1.1 XML文檔結構446 
16.1.2解析XML文檔447 
16.2實例:MyNotes應用XML 448 
16.2.1使用NSXML解析450 
16.2. 2使用TBXML解析453 
16.3 JSON數據交換格式459 
16.3.1 JSON文檔結構459 
16.3.2 JSON數據編碼/解碼460 
16.4實例:MyNotes應用JSON解碼461 
16.5小結462 
第17章REST Web Service 463 
17.1概述463 
17.2使用NSURLSession 464 
17.2.1 NSURLSession API 464 
17.2.2簡單會話實現GET請求465 
17.2.3默認會話實現GET請求468 
17.2.4實現POST請求469 
17.2.5下載數據470 
17.3實例:使用NSURLSession重構MyNotes 
案例473 
17.3 .1插入方法調用473 
17.3.2修改方法調用474 
17.3.3刪除方法調用475 
17.4使用AFNetworking框架477 
17.4.1比較ASIHTTPRequest、
AFNetworking和MKNetworkKit 477 
17.4.2安裝和配置AFNetworking框架478 
17.4.3實現GET請求479 
17.4.4實現POST請求480 
17.4.5下載數據481 
17.4.6上傳數據482 
17.5使用為Swift設計的網絡框架:
Alamofire 484 
17.5.1安裝和配置Alamofire框架484 
17.5.2實現GET請求485 
17.5.3實現POST請求486 
17.5.4下載數據487 
17.5.5上傳數據488 
17.6反饋網絡信息改善用戶體驗489 
17.6.1使用下拉刷新控件改善用戶體驗489 
17.6.2使用活動指示器控件492 
17.6.3使用網絡活動指示器494 
17.7小結494 
第18章定位服務495 
18.1定位服務概述495 
18.1.1定位服務編程496 
18.1.2測試定位服務499 
18.2管理定位服務503 
18.2.1應用啟動與停止下的定位服務
管理504 
18.2 .2視圖切換下的定位服務管理504 
18.2.3應用前後臺切換下的定位服務
管理505 
18.2.4設置自動暫停位置服務507 
18.2.5 iOS 9後臺位置服務管理507 
18.3地理信息編碼與反編碼508 
18.3.1地理信息反編碼508 
18.3.2實例:地理信息反編碼509 
18.3.3地理信息編碼查詢510 
18.3.4實例:地理信息編碼查詢510 
18.4微定位技術iBeacon 512 
18.4.1微定位與地理圍欄512 
18.4.2 iBeacon技術概述512 
18.4.3實例:使用iBeacon技術實現微
定位513 
18.5小結519 
第19章蘋果地圖應用520 
19.1使用iOS蘋果地圖520 
19.1.1顯示地圖520 
19.1.2顯示3D地圖524 
19.2添加標註525 
19.2.1實現查詢526 
19.2.2在地圖上添加標註528 
19.3跟蹤用戶位置變化529 
19.4使用程序外地圖530 
19.5小結533 
第四部分測試、調試和優化篇
第20章找出程序中的bug——調試536 
20.1 Xcode調試工具536 
20.1.1定位編譯錯誤536 
20.1.2查看和顯示日誌537 
20.1.3設置和查看斷點539 
20.1.4調試工具544 
20.1.5輸出窗口545 
20.1.6變量查看窗口546 
20.1.7查看線程547 
20.2 LLDB調試工具548 
20.2.1斷點命令548 
20.2.2觀察點命令550 
20.2.3查看變量和計算表達式命令552 
20.3日誌與斷言輸出554 
20.3.1使用NSLog函數554 
20.3.2使用斷言555 
20.4異常棧報告分析556 
20.4.1跟蹤異常棧556 
20.4.2分析棧報告558 
20.5在iOS設備上調試559 
20.5.1 Xcode設置559 
20.5.2設備設置560 
20.6 Xcode設備管理工具562 
20.6.1查看設備上的應用程序562 
20.6.2設備日誌564 
20.7小結564 
第21章iOS測試驅動與單元測試565 
21.1測試驅動的軟件開發概述565 
21.1.1測試驅動的軟件開發流程565 
21.1.2測試驅動的軟件開發案例566 
21.1.3 iOS單元測試框架567 
21.2使用XCTest測試框架568 
21.2.1添加XCTest到工程568 
21.2.2 Swift版本中設置編譯目標成員570 
21.2.3編寫XCTest測試方法570 
21.2.4運行測試用例目標573 
21.2.5分析測試報告575 
21.3異步單元測試576 
21.4性能測試580 
21.4.1 Swift版本中配置測試環境580 
21.4.2測試用例代碼580 
21.4.3分析測試結果581 
21.5 iOS單元測試最佳實踐583 
21.5.1配置測試數據持久層583 
21.5.2編寫數據持久層測試用例584 
21.5.3運行測試數據持久層測試用例587 
21.5.4配置測試業務邏輯層588 
21.5.5編寫業務邏輯層測試用例588 
21.6小結589 
第22章iOS應用UI測試590 
22.1 UI測試概述590 
22.2添加UI測試到工程590 
22.2.1創建工程時添加UI測試框架590 
22.2.2在現有工程中添加UI測試用例
目標591 
22.3錄製腳本593 
22.3.1錄製之前的準備593 
22.3.2錄製過程593 
22.3.3修改錄製腳本595 
22.4訪問UI元素595 
22.4.1 UI元素層次結構樹595 
22.4.2 UI測試中相關API 597 
22.5表示層測試最佳實踐598 
22.5.1配置UI測試用例目標598 
22.5.2編寫UI測試用例599 
22.6小結602 
第23章讓你的程序“飛”起來——性能
優化603 
23.1內存優化603 
23.1.1內存管理603 
23.1.2使用Analyze工具檢查內存洩漏603 
23.1.3使用Instruments工具檢查內存
洩漏608 
23.1.4使用Instruments工具檢查殭屍
對象612 
23.1.5 autorelease的使用問題615 
23.1.6響應內存警告616 
23.2優化資源文件617 
23.2.1圖片文件優化618 
23.2.2音頻文件優化619 
23.3延遲加載620 
23.3.1資源文件的延遲加載620 
23.3.2故事板文件的延遲加載624 
23.3.3 XIB文件的延遲加載626 
23.4數據持久化的優化628 
23.4.1使用文件628 
23.4.2使用SQLite數據庫631 
23.4.3使用Core Data 632 
23.5可重用對象的使用634 
23.5.1表視圖中的可重用對象635 
23.5.2集合視圖中的可重用對象636 
23.5.3地圖視圖中的可重用對象638 
23.6並發處理與多核CPU 638 
23.6.1主線程阻塞問題638 
23.6.2選擇NSThread還是GCD 639 
23.7小結640 
第五部分實戰篇
第24章管理好你的程序代碼——代碼版本
控制642 
24.1概述642 
24.1.1版本控制歷史642 
24.1.2基本概念643 
24.2 Git代碼版本控制643 
24.2.1服務器搭建643 
24.2.2 Gitolite服務器管理645 
24.2.3 Git常用命令647 
24.2.4 Git分支649 
24.2.5 Git協同開發653 
24.2.6 Xcode中Git的配置與使用656 
24.3 GitHub代碼託管服務663 
24.3.1創建和配置GitHub賬號663 
24.3.2創建代碼庫666 
24.3.3刪除代碼庫668 
24.3.4派生代碼庫669 
24.3.5使用GitHub協同開發671 
24.3.6管理組織677 
24.4小結680 
第25章項目依賴管理681 
25.1使用CocoaPods工具管理依賴681 
25.1. 1安裝CocoaPods 681 
25.1.2搜索庫682 
25.1.3項目與第三方庫搭配形式683 
25.1.4示例:靜態鏈接庫形式管理依賴684 
25.1.5示例:框架形式管理依賴686 
25.2使用Carthage工具管理依賴687 
25.2.1安裝Carthage 688 
25.2.2項目與第三方庫搭配形式688 
25.2.3 Cartfile文件688 
25.2.4示例:重構MyNotes依賴關係689 
25.3小結691 
第26章重構MyNotes應用——iOS網絡
通信中的設計模式與架構設計692 
26.1移動網絡通信應用的分層架構設計692 
26.2 Objective-C版本:在數據持久層中添加和
配置AFNetworking 693 
26.2.1用CocoaPods工具管理依賴693 
26.2.2測試依賴693 
26.3 Swift版本:在數據持久層中添加和配置
Alamofire 694 
26.3.1用Carthage工具管理依賴694 
26.3.2測試依賴695 
26.4基於委託模式實現695 
26.4.1網絡通信與委託模式696 
26.4.2在異步網絡通信中使用委託模式
實現分層架構設計696 
26.4.3類圖697 
26.4.4時序圖699 
26.4.5數據持久層重構(Objective-C 
版本) 702 
26.4.6數據持久層重構(Swift版本) 705 
26.4. 7業務邏輯層的代碼實現707 
26.4.8表示層的代碼實現710 
26.5基於觀察者模式的通知機制實現716 
26.5.1觀察者模式的通知機制回顧716 
26.5.2異步網絡通信中通知機制的分層架
構設計716 
26.5.3類圖717 
26.5.4時序圖719 
26.5.5數據持久層重構(Objective-C 
版本) 722 
26.5.6數據持久層重構(Swift版本) 723 
26.5.7業務邏輯層的代碼實現725 
26.5.8表示層的代碼實現726 
26.6小結731 
第27章把你的應用放到App Store上732 
27.1收官732 
27.1.1在Xcode中添加圖標732 
27.1.2在Xcode中添加啟動界面734 
27.1.3調整Identity和Deployment Info 
屬性738 
27.2為發布進行編譯739 
27.2.1創建開發者證書739 
27.2.2創建App ID 744 
27.2.3創建描述文件745 
27.2.4發布編譯748 
27.3發布上架750 
27.3.1創建應用750 
27.3.2應用定價753 
27.3.3基本信息輸入754 
27.3.4上傳應用757 
27.3.5提交審核759 
27.4常見審核不通過的原因761 
27.4.1功能問題761 
27.4.2用戶界面問題761 
27.4.3商業問題761 
27.4.4不當內容761 
27.4.5其他問題762 
27.5小結762 
第28章iOS敏捷開發項目實戰——2016裏
約熱內盧奧運會應用開發及App Store發布763 
28.1應用分析與設計763 
28.1.1應用概述763 
28.1.2需求分析763 
28.1.3原型設計764 
28.1.4數據庫設計765 
28.1.5架構設計766 
28.2 iOS敏捷開發766 
28.2.1敏捷開發宣言766 
28.2.2 iOS適合敏捷開發?767 
28.2.3 iOS敏捷開發最佳實踐767 
28.3任務1:創建應用工作空間和工程769 
28.3.1疊代1.1:創建工作空間769 
28.3.2疊代1.2:發佈到GitHub 769 
28.4任務2:信息系統層與持久層開發770 
28.4.1疊代2.1:編寫數據庫DDL腳本770 
28.4.2疊代2.2:插入初始數據到數據庫770 
28.4.3疊代2.3:數據庫版本控制771 
28.4.4疊代2.4:配置持久層工程PersistenceLayer 771 
28.4 .5疊代2.5:編寫實體類772 
28.4.6疊代2.6:編寫DAO類單元測試用例類773 
28.4.7疊代2.7:編寫DAO類775 
28.4.8疊代2.8:數據庫幫助類DBHelper 779 
28.4.9疊代2.9:配置及運行持久層測試用例目標781 
28.4.10疊代2.10:發佈到GitHub 782 
28.5任務3:業務邏輯層開發782 
28.5.1疊代3.1:比賽項目業務邏輯類
XCTest單元測試783 
28.5.2疊代3.2:編寫比賽項目業務
邏輯類784 
28.5.3疊代3.3:比賽日程業務邏輯類
XCTest單元測試785 
28.5.4疊代3.4:編寫比賽日程業務
邏輯類786 
28.5.5疊代3.5:發佈到GitHub 787 
28.6任務4:表示層開發788 
28.6.1疊代4.1:使用資源目錄管理圖片和圖標資源788 
28.6.2疊代4.2:根據原型設計初步設計
故事板789 
28.6.3疊代4.3:“首頁”模塊790 
28.6.4疊代4.4:“比賽項目”模塊791 
28.6.5疊代4.5:“比賽日程”模塊795 
28.6.6疊代4.6:“倒計時”模塊
表示層797 
28.6.7疊代4.7:“關於我們”模塊
表示層800 
28.6.8疊代4.8:發布到GitHub 800 
28.7任務5:收工800 
28.7.1疊代5.1:添加圖標800 
28.7.2疊代5.2:設計和添加啟動界面801 
28.7.3疊代5.3:性能測試與改善801 
28.7.4疊代5.4:發佈到GitHub上802 
28.7.5疊代5.5:在App Store上發布
應用802 
28.8小結802

 
    
 
     
    
 
    
 
    
 
     
     
    
 
    
