Swift開發進階

Swift開發進階

《Swift開發進階》是2021年清華大學出版社出版的圖書,作者是[美]大衛·馬克 等 。該書闡述了與Swift語言開發相關的高級解決方案。

基本介紹

  • 書名:Swift開發進階 
  • 作者:[美]大衛·馬克
  • 譯者: 於鑫睿
  • 出版社:清華大學出版社
  • 出版時間:2021年3月1日
  • 定價:149 元
  • ISBN:9787302572428
內容簡介,圖書目錄,作者簡介,

內容簡介

《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等。戴夫喜歡游泳,且技術精良。現在,他與妻子和三個孩子居住在維吉尼亞。

相關詞條

熱門詞條

聯絡我們