Swift 開發進階 (More iPhone Development with Swift: Exploring the iOS SDK)
內容描述
《Swift開發進階》詳細闡述了與Swift語言開發相關的高級解決方案,主要包括Core Data,添加、顯示與刪除數據,Detail View,模型變更,自定義托管對象,關系,網絡連接,地圖套件,消息傳遞,媒體庫訪問和播放,內容捕獲,界面生成器和故事板,單元測試和調試等內容。此外,本書還提供了豐富的示例以及代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。
目錄大綱
第1章歡迎回來1
1.1本書適合什麼樣的讀者1
1.2學習本書需要哪些具體的前期知識2
1.3開始之前的準備工作3
1.4本書的知識結構5
第2章Core Data:定義、原理以及使用方法9
2.1 Core Data簡史10
2.2創建Core Data應用程序10
2.3核心數據概念和術語14
2.4數據模型15
2.4.1實體19
2.4.2獲取請求22
2.4.3配置22
2.5數據模型類:NSManagedObjectModel 22
2.6持久化存儲與持久化存儲協調器25
2.7數據模型知識回顧27
2.8託管對象28
2.9鍵值編碼28
2.10管理對像上下文29
2.11終止保存30
2.12從持久性存儲中加載數據31
2.13獲取結果控制器32
2.13.1創建一個獲取結果控制器33
2.13.2獲取結果控制器委託方法36
2.13.3從獲取結果控制器中檢索託管對象39
2.13.4創建和插入新的託管對象39
2.13.5刪除託管對象41
2.14本章小結42
第3章“超級開始”:添加、顯示與刪除數據43
3.1設置Xcode項目44
3.1.1添加場景47
3.1.2場景與頁面跳轉47
3.1.3 storyboard文檔大綱48
3.2應用程序架構49
3.3設計視圖控制器界面50
3.4創建HeroListController 54
3.4.1建立關聯和插座57
3.4.2導航欄按鈕59
3.4.3選項卡與用戶默認值61
3.5數據模型設計63
3.5.1添加實體64
3.5. 2編輯新實體64
3.5.3為Hero實體添加特性66
3.6聲明獲取結果控制器72
3.7實施獲取結果控制器72
3.8獲取結果控制器委託方法74
3.9其他後續工作76
3.9.1錯誤處理76
3.9.2實施Edit和“ ”(Add)按鈕76
3.9.3為表視圖數據源和委託方法編寫相應代碼77
3.9.4表視圖排序79
3.9.5在程序啟動時運行獲取請求80
3.10運行測試80
3.11再接再厲82
第4章來自內容視圖的挑戰83
4.1視圖實施方法選擇83
4.2創建內容視圖控制器84
4.2.1連接頁面跳轉88
4.2.2 HeroDetailController類88
4.3內容視圖的挑戰89
4.4使用屬性列表控製表結構91
4.5什麼是屬性列表91
4.6通過屬性列表定義表視圖93
4.7屬性列表解析97
4.8推送內容97
4.9顯示內容100
4.10編輯內容101
4.11內容視圖中的編輯模式101
4.12創建一個自定義UITableViewCell子類104
4.13保存修改108
4.14專有輸入界面109
4.14.1日期選擇器SuperDBEditCell子類109
4.14.2日期選擇器SuperDBEditCell子類的使用111
4.14.3實現一個選擇器114
4.15挑戰完成117
第5章模型變更:數據遷移和版本控制119
5.1關於數據模型120
5.1.1數據模型是被編譯過的121
5.1.2一個數據模型可以有多個版本121
5.1.3創建新版本的數據模型122
5.1.4當前數據模型版本123
5.1.5數據模型版本標識符124
5.2遷移125
5.2.1輕量級遷移和標准遷移125
5.2.2標准遷移125
5.3將應用程序設置為輕量級遷移125
5.4開始遷移126
第6章自定義託管對象129
6.1更新數據模型131
6.1.1添加age特性132
6.1.2添加favoriteColor特性132
6.1.3向name特性添加最小長度133
6.2創建Hero類134
6.2.1調整Hero標題136
6.2.2默認值137
6.3添加驗證138
6.3.1單一特性驗證138
6.3.2多特性驗證140
6.4添加驗證反饋142
6.5更新內容視圖145
6.6創建SuperDBNonEditableCell 147
6.6.1創建一個子類147
6.6.2移動代碼147
6.6.3可編輯屬性148
6.7創建顏色表視圖單元格149
6.7.1自定義顏色選擇器149
6.7.2自定義顏色表視圖單元格152
6.8清理選擇器154
6.9最後一步158
6.10顏色我們走了160
第7章關係,獲取屬性以及表達式161
7.1應用程序擴展:超能力名稱和報告161
7.2關係162
7.2.1一對一關係164
7.2. 2對多關係164
7.2.3逆向關係167
7.2.4獲取屬性168
7.2.5在數據模型編輯器中創建關係和獲取屬性169
7.2.6刪除規則169
7.3表達式和聚合169
7.4添加超能力實體171
7.5創建超能力關係172
7.6創建逆向關係173
7.7創建olderHeroes獲取屬性173
7.8創建youngerHeroes獲取屬性175
7.9創建sameSexHeroes獲取屬性175
7.10創建oppsiteSexHeroes獲取屬性176
7.11向Hero類添加關係和獲取屬性176
7.12更新內容視圖176
7.12.1對配置的反思179
7.12.2封裝與信息隱藏183
7.12.3數據驅動的配置185
7.12.4添加超能力186
7.13重構內容視圖控制器192
7.13.1重命名配置類193
7.13.2重構內容控制器194
7.13.3重構Hero實例變量195
7.13.4再抽像一點196
7.13.5一個新的HeroDetailController 198
7.14 Power視圖控制器199
7.15獲取屬性202
7.16更加精細的內容視圖206
7.17精彩的核心數據206
第8章每個iCloud背後的故事209
8.1使用iCloud進行數據存儲209
8.2 iCloud基礎知識210
8.3 iCould備份210
8.4在應用程序中啟用iCloud 211
8.5鍵值數據存儲212
8.6文檔存儲213
8.6.1 UIDocument 213
8.6.2帶有iCloud功能的UIDocument 217
8.6.3 NSMetadataQuery 218
8.7帶有iCloud功能的Core Data 219
8.8升級SuperDB 222
8.8 .1授權222
8.8.2啟用iCloud並創建相關文件222
8.8.3更新持久化存儲224
8.8.4更新託管對像上下文226
8.8.5更新DataChanged上的UI 227
8.8.6測試數據存儲227
8.8.7保持腳踏實地228
第9章使用Multipeer Connectivity框架創建的對等網絡連接229
9.1對等網絡連接229
9.2本章的應用程序示例230
9.3網絡通信模型233
9.3.1客戶端-服務器模型233
9.3.2對等連接模型234
9.3.3客戶端-服務器/對等網絡混合程序235
9.4 Multipeer Connectivity對等設備235
9.5多點連接會話236
9.5.1創建會話236
9.5.2尋找與連接其他會話237
9.5.3偵聽其他會話237
9.5.4連接對等設備239
9.5.5向對等設備發送數據240
9.5.6打包要發送的信息241
9.5.7從一個對等設備接收數據242
9.5.8關閉連接242
9.5.9處理一個對等連接242
9.6創建項目243
9.6.1關閉空閒計時器243
9.6.2設計界面243
9.6.3定義應用程序常量244
9.6.4設計遊戲棋盤246
9.6.5創建數據包對象249
9.6.6建立視圖控制器251
9.6.7實現井字棋遊戲的視圖控制器253
9.7試著運行程序265
9.8加油266
第10章地圖套件267
10.1本章出現的示例應用程序267
10.2概述和術語268
10.3地圖視圖269
10.3.1地圖類型269
10.3.2位置授權270
10.3.3用戶位置271
10.3.4坐標區域272
10.3.5設置顯示區域275
10.3 .6地圖視圖委託275
10.4註釋277
10.4.1註釋對象277
10.4.2註釋視圖278
10.4.3添加刪除註釋279
10.4.4註釋選擇279
10.4.5製作帶註釋視圖的地圖視圖280
10.5地理編碼與反向地理編碼281
10.6構建MapMe應用程序282
10.6.1構建應用程序界面282
10.6.2完成視圖控制器界面284
10.6.3編寫註釋對像類285
10.6.4實現MapMe視圖控制器287
10.7起航吧,年輕的程序員294
第11章消息傳遞:郵件、社交和iMessage 295
11.1本章的示例應用程序295
11.2 MessageUI框架297
11.2.1創建郵件撰寫視圖控制器298
11.2.2填充主題行298
11.2 .3填充收件人298
11.2.4設置郵件主體299
11.2.5添加附件299
11.2.6呈現郵件撰寫視圖299
11.2.7郵件撰寫視圖控制器委託方法300
11.2.8消息撰寫視圖控制器300
11.2. 9消息附件302
11.2.10禁用消息附件302
11.3社交框架302
11.3.1撰寫視圖控制器303
11.3.2 SLRequest 304
11.4活動視圖控制器305
11.5構建MessageImage應用程序306
11.5.1構建用戶界面306
11.5.2拍照307
11.5.3調用攝像頭307
11.5.4選擇消息發件人308
11.6發送309
第12章媒體庫訪問和播放311
12.1 MediaPlayer框架311
12.1.1媒體項目312
12.1.2媒體項目集合316
12.1.3媒體查詢和媒體屬性謂詞317
12.1.4媒體選擇器控制器320
12.1.5音樂播放器控制器322
12.2簡單的音樂播放器327
12.2. 1構建SimplePlayer應用程序328
12.2.2構建用戶界面328
12.2.3聲明接口和操作331
12.3 MPMoviePlayerController 336
12.4 MPMediaPlayer 337
12.5 AVFoundation 348
12.6 TL;DR: AVKit 350
12.7播放視頻351
12.8 AVMediaPlayer 354
12.9 AVMediaPlayer v2 355
12.10照片庫358
12.11修改照片庫359
12.12在對我講話嗎361
12.13注意!前方波濤洶湧362
第13章閃光燈、攝像頭和內容捕獲363
13.1閃光燈363
13.2攝像頭364
13.3更改設置366
13.4選擇一個攝像頭368
13.5選擇一個輸出源370
13.6掃描條形碼374
13.7生成條形碼377
13.8製造聲響379
13.9錄音380
13.10更精彩的內容382
第14章界面生成器和故事板383
14.1 storyboard視圖控制器383
14.2頁面跳轉385
14.3控件387
14.3.1 Inspectable特性387
14.3.2 Designable特性388
14.3.3製作一個更有用的BasicControl 390
14.4視圖控制器394
14.5轉換動畫396
14.6後文預告401
第15章單元測試、調試以及Instruments工具403
15.1單元測試403
15.2調試410
15.2 .1斷點412
15.2.2調試導航器413
15.2.3調試區域414
15.2.4嘗試調試控件416
15.2.5斷點導航器和符號斷點419
15.2.6條件斷點420
15.2.7斷電操作422
15.2.8常見問題介紹424
15.3性能分析工具Instruments 425
15.4路途將盡427
第16章路一直都在429
16.1擺脫困境429
16.2 Apple的文檔429
16.3郵件列表430
16.4討論論壇430
16.5相關網站431
16.6博客431
16.7相關書籍432
16.8該說再見了433
作者介紹
大衛·馬克是一名長期的Mac開發者和作者,曾出版過大量專著,包括iPhone 、Mac等。戴夫喜歡游泳,且技術精良。
現在,他與妻子和三個孩子居住在弗吉尼亞。