本書由專業(yè)的iOS開發(fā)工程師根據(jù)新發(fā)布的Swift 5.5編程語言精心編撰,書中兼?zhèn)浜诵恼Z法、編程技巧與應用實踐3大主題。本書部分從Xcode開發(fā)工具及Swift學習環(huán)境的搭建開始,重點介紹Swift的語言特性和應用場景,提供了大量編程練習,幫助讀者盡快掌握Swift語言的精髓。第二部分介紹Swift開發(fā)iOS應用的基本技能,包括獨立UI控件的應用、視圖界面邏輯的開發(fā)、動畫與布局技術、網(wǎng)絡與數(shù)據(jù)處理技術以及新的SwiftUI編程技術等,旨在帶領讀者獨立開發(fā)一款iOS應用程序。第三部分為應用部分,這部分安排了實戰(zhàn)項目(簡易計算器、生活記事本、中國象棋游戲),項目的安排由簡到難,旨在全面鍛煉讀者的實際開發(fā)能力,使用Swift進行開發(fā)實踐。本書還在每一章中插入了模擬面試題,以幫助讀者應對iOS開發(fā)職位的面試。 通過本書的學習,讀者可以輕松地掌握使用Swift語言開發(fā)一款iOS軟件從理論到實踐的全部技術細節(jié)。本書適合使用Swift 開發(fā)iOS應用的新手,以及有Objective-C基礎,想學習Swift 的iOS開發(fā)人員學習,也適合作為培訓機構與大中專院校移動開發(fā)課程的教學用書或面試指導書。
本書以讀者能夠完全獨立開發(fā)iOS應用為目標構建知識體系,全書分為三部分,各部分說明如下:
部分 將為讀者介紹Swift語言的語法,這也是本書后面部分的基礎,共12章,每1章都為讀者介紹Swift語言的一些基礎語法點,包括數(shù)據(jù)類型、流程控制語句、運算符、函數(shù)與閉包、枚舉、結構體、類、屬性與方法、對象構造與析構、內存管理、異常處理、擴展與協(xié)議以及Swift語言的新特性等。
第二部分 為iOS開發(fā)基礎部分,目前Swift語言應用的主要場景是iOS應用的開發(fā)。這部分內容將系統(tǒng)地向讀者介紹iOS 開發(fā)技能,包括獨立UI控件的應用、視圖界面邏輯的開發(fā)、動畫與布局技術、網(wǎng)絡與數(shù)據(jù)處理技術等。掌握了這些技能,理論上講讀者已經具備了獨立開發(fā)一款iOS 應用程序的能力。本部分還介紹了Swift 5新增的SwiftUI技術,SwiftUI技術將使得軟件的界面開發(fā)更加高效和容易。
第三部分 為實戰(zhàn)部分,學習編程,實戰(zhàn)是必經的一關。本書為讀者安排了3個實戰(zhàn)項目,項目的安排由簡入難,并且各個項目的側重點分布均勻,力圖全面鍛煉讀者的實際開發(fā)能力。
除了循序漸進的技能學習外,在每一章的后還加入了練習題與模擬面試。練習題可以幫助讀者更好地理解和掌握當前章節(jié)所學習的內容,模擬面試可以幫助讀者增加實戰(zhàn)經驗,進而提高應用能力。
自2014年Apple在全球開發(fā)者大會上發(fā)布了Swift編程語言,至今已經經歷了5個大版本的迭代,隨著Swift語言的更新與完善,開發(fā)者對其的熱情也越來越高,越來越多的公司在開發(fā)iOS軟件項目時都將Swift作為先選擇的編程語言。
從版Swift語言的發(fā)布開始,我就一直對這門新興的編程語言有著濃厚的興趣,幾年前,當我次收到清華大學出版社王金柱編輯的邀請,建議寫一本幫助新手入門Swift語言iOS開發(fā)的工具書時,忐忑的心情至今還記憶猶新。經過再三的考慮與矛盾,我終決定接下這個任務。當然,不是我對自己的編程技能充滿信心,只是覺得把學習過程中遇到的問題、走過的彎路、積累的經驗整理成冊提供給初學者是一件非常有意義的事情。后來經過半年多的努力,《Swift 3從入門到精通》順利出版并且得到了不錯的回應。盡管在寫作的過程中充滿了艱辛,但是看到自己的作品可以給讀者帶來切實的幫助,我也收獲到了額外的喜悅與慰藉。后來,在各位讀者的幫助下,我對書中出現(xiàn)的錯誤與不合理之處進行了多次糾正與優(yōu)化,《Swift 4從入門到精通》得以與讀者相見。
截至本書完稿,Swift編程語言已經更新到5.5版本,其間Swift語言改變了很多,也優(yōu)化了很多,從1.0到3.0版本,Swfit語言經歷了質的變化,從3.0到5.0版本,Swift語言也迎來了完善與穩(wěn)定。Swift語言是少有的在短時間內大版本更迭的編程語言,這也體現(xiàn)了這門語言不拘一格、大膽創(chuàng)新的特點。本書在《Swift 4從入門到精通》的基礎上,優(yōu)化了部分過時的內容,新增了Swift 5.5的新特性與SwiftUI技術的內容,更重要的是,總結了《Swift 4從入門到精通》一書讀者的反饋,本書中的內容更加面向應用,并且插入了大量的面試題,并做了試題解析與面試指導。
本書分為三大部分。
部(第1~12章)將為讀者介紹Swift語言的一些基礎語法點,包括數(shù)據(jù)類型、流程控制語句、運算符、函數(shù)與閉包、枚舉、結構體、類、屬性與方法、對象構造與析構、內存管理、異常處理、擴展與協(xié)議以及Swift語言的新特性等。這12章內容將竭力為讀者介紹Swift語言的語法特點與應用場景,并且每一章后面都附帶有習題,供讀者對本章所學的知識進行測試與應用。
第二部分(第13~18章)為iOS開發(fā)基礎部分,目前Swift語言應用的主要場景為iOS應用的開發(fā)。這部分內容將系統(tǒng)地向讀者介紹iOS的開發(fā)技能,包括獨立UI控件的應用、視圖界面邏輯的開發(fā)、動畫與布局技術、網(wǎng)絡與數(shù)據(jù)處理技術等。掌握了這些技能,理論上讀者已經具備獨立開發(fā)一款iOS 應用程序的能力。與《Swift 4從入門到精通》一書不同的是,本書中新增了SwiftUI章節(jié),SwiftUI技術將使得軟件的界面開發(fā)更加容易。
第三部分(第19~21章)為實戰(zhàn)部分,學習編程,實戰(zhàn)是必經的一關。本書為讀者安排了3個實戰(zhàn)項目,項目的安排由簡入難,并且各個項目的側重點分布均勻,力圖全面鍛煉讀者的實際開發(fā)能力。
除了三大部分循序漸進的技能學習外,在每一章的后都加入了練習題與模擬面試。練習題可以幫助讀者更好地理解和掌握當前章節(jié)所學習的內容,模擬面試可以幫助讀者增加實戰(zhàn)經驗,進而提高應用能力。
本書是一本從基礎到實戰(zhàn)的Swift編程語言學習教程。如果你符合下面的特點,那么本書就是為你定制的:
(1)對iOS系統(tǒng)軟件開發(fā)感興趣,想要從事iOS軟件開發(fā)的人員。
(2)對編程感興趣,對Swift編程語言感興趣的人員。
(3)熟悉Objective-C語言,想要嘗試Swift語言的開發(fā)者。
(4)需要進行面試指導的Swift求職者。
此外,本書還提供了全部源代碼,以方便讀者上機演練,讀者掃描以下二維碼即可下載:
如果你在下載過程中遇到問題,可發(fā)送郵件至booksaga@126.com獲得幫助,郵件標題為Swift 5從零到精通iOS開發(fā)訓練營。
編程是一門動手性很強的技能,因此在學習本書時,讀者首先需要搭建好自己的開發(fā)環(huán)境(本書第1章有介紹)。在學習書中內容時要對照代碼進行實際操作,并且本書的配套資源中也有書中所引用的全部代碼,讀者在學習時可以進行參考對照。如果讀者沒有良好的Swift語言基礎,在學習本書時,請務必根據(jù)章節(jié)的順序安排進行學習,只有有了良好的語言基礎,學習后面章節(jié)的時候才能得心應手。
本書能夠順利完成,首先要感謝家人對我寫作的支持,感謝朋友們的無私幫助。重要的是感謝清華大學出版社的王金柱編輯,王金柱編輯耐心地糾正了我許多寫作中的問題,并且給了我許多非常有價值的建議,指導我完成了本書的編寫。沒有他的辛勤付出,本書不會出現(xiàn)在讀者的面前。后,感謝所有讀者,我們都是編程路途中的學習者,你們的努力和認可讓我堅定不移地去做分享知識這件有意義的事,希望我們能夠一起努力,一起前進!
編 者
2021年6月27日
張益琿(網(wǎng)名:琿少)
多年iOS開發(fā)經驗,51CTO學院、CSDN學院簽約講師 ,主要從事移動端應用開發(fā),曾就職于國內知名電商網(wǎng)站,從事iOS端應用程序的業(yè)務開發(fā)與性能優(yōu)化工作。目前在國內知名社交產品公司從事IM系統(tǒng)的架構設計工作。對iOS開發(fā)、React Native和Flutter跨平臺開發(fā)及JavaScript前端開發(fā)都擁有豐富的經驗。已出版《iOS開發(fā)實戰(zhàn):從零基礎到App Store上架》《React Native全教程:移動端跨平臺應用開發(fā)》《iOS開發(fā)實戰(zhàn):從零基礎到上架App Store(第3版)》《Swift從零到精通iOS開發(fā)》等多本編程著作。開源中國特邀技術專家,發(fā)表相關技術博客400余篇,訪問量100萬余次。
部分 Swift語言基礎語法
第1章 學習環(huán)境的搭建 3
1.1 申請個人AppleID賬號 3
1.2 下載與安裝Xcode開發(fā)工具 4
1.3 Xcode開發(fā)工具簡介 5
1.4 使用Playground進行Swift代碼演練 8
第2章 量值與基本數(shù)據(jù)類型 11
2.1 變量與常量 12
2.1.1 變量與常量的定義和使用 12
2.1.2 變量和常量的命名規(guī)范 13
2.2 關于注釋 14
2.3 初識基本數(shù)據(jù)類型 15
2.3.1 數(shù)學進制與計算機存儲原理 15
2.3.2 整型數(shù)據(jù) 16
2.3.3 浮點型數(shù)據(jù) 17
2.3.4 布爾型數(shù)據(jù) 17
2.4 兩種特殊的基本數(shù)據(jù)類型 18
2.4.1 元組 18
2.4.2 可選值類型 19
2.5 為類型取別名 22
2.6 練習及解析 22
2.7 模擬面試 23
第3章 字符、字符串與集合類型 25
3.1 字符串類型 26
3.1.1 進行字符串的構造 26
3.1.2 字符串的組合 27
3.2 字符類型 27
3.2.1 字符類型簡介 27
3.2.2 轉義字符 28
3.3 字符串類型中的常用方法 29
3.4 集合類型 31
3.4.1 數(shù)組(Array)類型 32
3.4.2 集合(Set)類型 35
3.4.3 字典(Dictionary)類型 37
3.5 練習及解析 40
3.6 模擬面試 42
第4章 基本運算符與程序流程控制 44
4.1 初識運算符 45
4.1.1 賦值運算符 45
4.1.2 基本算術運算符 45
4.1.3 基本邏輯運算符 46
4.1.4 比較運算符 47
4.1.5 條件運算符 48
4.2 Swift語言中兩種特殊的運算符 48
4.2.1 空合并運算符 48
4.2.2 區(qū)間運算符 49
4.3 循環(huán)結構 50
4.3.1 for-in循環(huán)結構 50
4.3.2 while與repeat-while條件循環(huán)結構 51
4.4 條件選擇與多分支選擇結構 52
4.4.1 if與if-else條件選擇結構 52
4.4.2 switch-case多分支選擇結構 53
4.5 Swift語言中的流程跳轉語句 56
4.6 練習及解析 59
4.7 模擬面試 62
第5章 函數(shù)與閉包技術 64
5.1 函數(shù)的基本應用 65
5.1.1 函數(shù)的創(chuàng)建與調用 65
5.1.2 關于函數(shù)的參數(shù)名 66
5.1.3 函數(shù)中參數(shù)的默認值、不定數(shù)量參數(shù)與inout類型參數(shù) 68
5.2 函數(shù)的類型與函數(shù)嵌套 69
5.3 理解閉包結構 71
5.3.1 閉包的語法結構 71
5.3.2 通過實現(xiàn)一個排序函數(shù)來深入理解閉包 72
5.4 將閉包作為參數(shù)傳遞時的寫法優(yōu)化 74
5.5 后置閉包、逃逸閉包與自動閉包 75
5.6 練習及解析 77
5.7 模擬面試 80
第6章 高級運算符與枚舉 81
6.1 位運算符與溢出運算符 82
6.1.1 位運算符的應用 82
6.1.2 溢出運算符 83
6.2 運算符的重載與自定義 84
6.2.1 重載運算符 84
6.2.2 自定義運算符 86
6.3 運算符的優(yōu)先級與結合性 87
6.4 枚舉類型的創(chuàng)建與應用 89
6.5 枚舉的原始值與相關值 91
6.5.1 枚舉的原始值 91
6.5.2 枚舉的相關值 92
6.5.3 遞歸枚舉 93
6.6 練習及解析 96
6.7 模擬面試 97
第7章 類與結構體 99
7.1 類與結構體的定義 99
7.1.1 結構體 100
7.1.2 類 101
7.2 設計一個交通工具類 103
7.3 開發(fā)中類與結構體的應用場景 105
7.4 練習及解析 106
7.5 模擬面試 108
第8章 屬性與方法 110
8.1 存儲屬性與計算屬性 111
8.1.1 存儲屬性的意義及應用 111
8.1.2 計算屬性的意義及應用 113
8.2 屬性監(jiān)聽器 115
8.3 屬性包裝器 116
8.4 實例屬性與類屬性 119
8.5 實例方法與類方法 119
8.5.1 實例方法的意義與應用 120
8.5.2 類方法 121
8.6 下標方法 122
8.7 練習及解析 124
8.8 模擬面試 124
第9章 構造方法與析構方法 126
9.1 構造方法的設計與使用 126
9.2 指定構造方法與便利構造方法 129
9.3 構造方法的繼承關系 131
9.4 構造方法的安全性檢查 132
9.5 可失敗構造方法與必要構造方法 134
9.6 析構方法 135
9.7 練習與解析 135
9.8 模擬面試 137
第10章 內存管理與異常處理 138
10.1 自動引用計數(shù) 139
10.2 循環(huán)引用及其解決方法 141
10.3 閉包中的循環(huán)引用 146
10.4 異常的拋出與傳遞 147
10.5 異常的捕獲與處理 148
10.6 延時執(zhí)行結構 149
10.7 練習與解析 150
10.8 模擬面試 151
第11章 類型轉換、泛型、擴展與協(xié)議 152
11.1 類型檢查與轉換 153
11.1.1 Swift語言中的類型檢查 153
11.1.2 Swift語言中的類型轉換 154
11.2 Any與AnyObject類型 155
11.3 泛型 156
11.3.1 初識泛型 156
11.3.2 對泛型進行約束 158
11.4 擴展與協(xié)議 160
11.4.1 使用擴展對已經存在的數(shù)據(jù)類型進行補充 160
11.4.2 協(xié)議的特點與應用 162
11.4.3 協(xié)議與擴展的結合 165
11.5 模擬面試 165
第12章 Swift的高級特性 167
12.1 內存安全檢查(獨占訪問權限) 167
12.2 關聯(lián)類型可以添加where約束子句 170
12.3 增強字符串和區(qū)間運算符的功能 170
12.4 動態(tài)成員查找與動態(tài)方法調用 172
12.5 泛型與協(xié)議功能的增強 173
12.6 模擬面試 175
第二部分 iOS開發(fā)基礎
第13章 UI控件與邏輯交互(1) 179
13.1 iOS項目工程簡介 180
13.1.1 創(chuàng)建iOS項目工程 180
13.1.2 運行個iOS程序 181
13.2 標簽控件UILabel 184
13.2.1 使用代碼創(chuàng)建一個UILabel控件 184
13.2.2 自定義UILable控件的展示效果 185
13.2.3 定義更加豐富多彩的UILabel控件 186
13.3 按鈕控件UIButton 188
13.3.1 創(chuàng)建UIButton按鈕控件 188
13.3.2 為按鈕添加觸發(fā)事件 190
13.3.3 為UIButton添加自定義圖片 191
13.4 圖片顯示控件UIImageView 192
13.4.1 圖片類UIImage 193
13.4.2 使用UIImageView進行圖片的展示 193
13.4.3 使用UIImageView播放動畫 194
13.5 文本輸入框控件UITextField 196
13.5.1 創(chuàng)建文本輸入框控件 196
13.5.2 為UITextField設置左右視圖 198
13.5.3 UITextField控件的代理方法 199
13.6 開關控件UISwitch 201
13.7 分頁控制器UIPageControl 203
13.8 分部控制器UISegmentedControl 204
13.8.1 創(chuàng)建分布控制器控件 204
13.8.2 UISegmentedControl控件中按鈕的增、刪、改操作 205
13.8.3 關于UISegmentedControl控件中按鈕的尺寸問題 206
13.9 模擬面試 207
第14章 UI控件與邏輯交互(2) 208
14.1 滑塊控件UISlider 208
14.1.1 UISlider控件的創(chuàng)建與設置 209
14.1.2 UISlider控件的外觀自定義與用戶交互 209
14.2 活動指示器控件UIActivityIndicatorView 211
14.3 進度條控件UIProgressView 212
14.4 步進器控件UIStepper 213
14.5 選擇器控件UIPickerView 215
14.6 時間選擇器控件UIDataPicker 219
14.7 搜索欄控件UISearchBar 221
14.7.1 創(chuàng)建UISearchBar控件 221
14.7.2 UISearchBar控件的更多功能按鈕 224
14.7.3 UISearchBar控件的附件視圖 225
14.7.4 UISearchBarDelegate協(xié)議詳解 226
14.8 模擬面試 227
第15章 視圖控制器與高級UI視圖控件 229
15.1 應用程序的界面管理器UIViewController 230
15.1.1 關于MVC設計模式 230
15.1.2 UIViewController的生命周期 231
15.1.3 UIViewController之間的切換與傳值 232
15.2 導航視圖控制器UINavigationController 238
15.2.1 理解導航結構 238
15.2.2 搭建使用導航結構的項目 238
15.2.3 對導航欄進行自定義設置 240
15.2.4 使用導航進行視圖控制器的切換管理 243
15.3 標簽欄控制器UITabBarController 244
15.3.1 創(chuàng)建以UITabBarController為項目結構的工程 244
15.3.2 對UITabBarController中的標簽進行自定義配置 247
15.3.3 標簽欄上標簽的溢出與排序功能 249
15.4 警告視圖控制器的應用 251
15.4.1 認識UIAlertAction類 251
15.4.2 使用UIAlertController創(chuàng)建警告框彈窗 252
15.4.3 使用UIAlertController創(chuàng)建抽屜彈窗 254
15.5 網(wǎng)頁視圖的應用 254
15.5.1 網(wǎng)頁視圖UIWebView 255
15.5.2 認識WebKit框架 258
15.5.3 使用WKWebViewConfiguration對網(wǎng)頁視圖進行配置 259
15.5.4 WKWebView中重要的屬性和方法解析 261
15.5.5 關于WKUIDelegate協(xié)議 262
15.6 滾動視圖UIScrollView的應用 263
15.6.1 創(chuàng)建UIScrollView滾動視圖 263
15.6.2 UIScrollViewDelegate協(xié)議介紹 265
15.6.3 UIScrollView的縮放操作 266
15.7 列表視圖UITableView的應用 267
15.7.1 創(chuàng)建UITableView列表 267
15.7.2 進行數(shù)據(jù)載體UITableViewCell的自定義 271
15.7.3 UITableView的編輯模式 274
15.7.4 為UITableView添加索引欄 277
15.8 集合視圖UICollectionView的應用 279
15.8.1 使用UICollectionView實現(xiàn)簡單的九宮格布局 279
15.8.2 使用FlowLayout進行更加靈活的九宮格布局 281
15.8.3 實現(xiàn)炫酷的瀑布流布局 283
15.9 模擬面試 286
第16章 動畫與界面布局技術 288
16.1 使用UIView層動畫實現(xiàn)屬性漸變效果 289
16.1.1 UIView層的屬性過渡動畫 289
16.1.2 UIView層的轉場動畫 292
16.2 通過GIF文件播放動畫 294
16.2.1 使用原生的UIImageView來播放GIF動態(tài)圖 294
16.2.2 使用UIWebView進行GIF動態(tài)圖的播放 296
16.3 iOS開發(fā)中的CoreAnimation核心動畫技術 297
16.3.1 初識CoreAnimation框架 297
16.3.2 錨點對視圖幾何屬性的影響 297
16.3.3 幾種常用的CALayer子類介紹 298
16.3.4 CoreAnimation框架中的屬性動畫介紹 302
16.3.5 CoreAnimation框架中的轉場動畫與組合動畫 303
16.4 炫酷的粒子效果 305
16.4.1 粒子發(fā)射引擎與粒子單元 305
16.4.2 創(chuàng)建火焰粒子效果 307
16.5 Autolayout自動布局技術 309
16.5.1 使用Storyboard或者XIB文件進行界面的自動布局 309
16.5.2 進行視圖間的約束布局 312
16.5.3 使用原生代碼進行Autolayout自動布局 313
16.5.4 使用第三方框架SnapKit進行Autolayout自動布局 316
16.6 使用Autolayout創(chuàng)建自適應高度的UITextView輸入框 318
16.7 模擬面試 319
第17章 網(wǎng)絡與數(shù)據(jù)存儲技術 321
17.1 獲取互聯(lián)網(wǎng)上公開API所提供的數(shù)據(jù) 321
17.1.1 注冊天行API會員 322
17.1.2 進行API接口測試 322
17.1.3 關于JSON數(shù)據(jù)格式 323
17.2 在iOS開發(fā)中進行網(wǎng)絡數(shù)據(jù)請求 324
17.2.1 關于HTTP網(wǎng)絡請求協(xié)議 325
17.2.2 使用URLSesstion進行網(wǎng)絡請求 325
17.3 使用UserDefaults進行簡單數(shù)據(jù)的持久化存儲 327
17.3.1 使用UserDefaults與Plist文件進行常見類型數(shù)據(jù)的存儲 328
17.3.2 使用Plist文件進行數(shù)據(jù)持久化處理 329
17.4 iOS開發(fā)中的歸檔技術應用 331
17.4.1 對簡單數(shù)據(jù)類型的歸檔操作 331
17.4.2 對自定義數(shù)據(jù)類型進行歸檔操作 333
17.5 數(shù)據(jù)庫在iOS開發(fā)中的應用 334
17.5.1 操作數(shù)據(jù)庫常用語句 334
17.5.2 可視化數(shù)據(jù)庫管理工具MesaSQLite的簡單應用 337
17.5.3 libsqlite3數(shù)據(jù)庫操作庫簡介 338
17.5.4 在iOS工程中調用libsqlite3庫操作數(shù)據(jù)庫 340
17.6 使用CoreData框架進行數(shù)據(jù)管理 344
17.6.1 使用CoreData框架進行數(shù)據(jù)模型設計 344
17.6.2 使用CoreData進行數(shù)據(jù)的添加與查詢操作 346
17.7 模擬面試 348
第18章 SwiftUI技術 349
18.1 視圖的布局方式 349
18.1.1 SwiftUI布局初體驗 350
18.1.2 使用圖片組件 353
18.1.3 在SwiftUI中使用UIKit中的組件 354
18.2 SwiftUI中的列表視圖 354
18.2.1 編寫行視圖 354
18.2.2 將數(shù)據(jù)關聯(lián)到視圖 355
18.2.3 構建列表視圖 356
18.3 使用導航進行頁面跳轉 357
18.4 處理用戶交互 360
18.4.1 SwiftUI中的按鈕組件 360
18.4.2 SwiftUI中的狀態(tài) 361
18.4.3 使用環(huán)境對象 362
18.5 SwiftUI自定義繪制 363
18.5.1 圖形繪制 363
18.5.2 設置繪制屬性 365
18.5.3 簡單的圖形變換與組合 367
18.6 SwiftUI中的動畫技術 368
18.6.1 屬性動畫 368
18.6.2 轉場動畫 369
18.7 模擬面試 370
第三部分 實戰(zhàn)
第19章 實戰(zhàn)一:簡易計算器 373
19.1 計算器按鍵與操作面板的封裝 373
19.2 計算器顯示板輸入顯示的邏輯開發(fā) 377
19.3 計算器計算邏輯的設計 381
19.4 為應用添加圖標與啟動頁 384
第20章 實戰(zhàn)二:點滴生活記事本 386
20.1 項目工程的搭建 386
20.2 主頁記事分組視圖的開發(fā) 389
20.3 添加分組功能的開發(fā) 392
20.4 數(shù)據(jù)庫引入與記事分組信息的持久化 394
20.5 記事列表界面的搭建 396
20.6 新建記事功能的開發(fā) 399
20.7 更新記事與刪除記事功能的開發(fā) 406
第21章 實戰(zhàn)三:《中國象棋》游戲 411
21.1 項目工程的搭建與音頻模塊的開發(fā) 411
21.2 《中國象棋》棋子控件的開發(fā) 415
21.3 《中國象棋》棋盤控件的開發(fā) 418
21.4 兵與卒行棋邏輯的開發(fā) 422
21.5 將與士相關棋子行棋邏輯的開發(fā) 429
21.6 象與馬相關棋子行棋邏輯的開發(fā) 432
21.7 車與炮棋子行棋邏輯的開發(fā) 437
21.8 勝負判定邏輯開發(fā)與游戲功能完善 441
21.9 拆分冗長的checkCanMove()方法 446
附錄A CocoaPods庫管理工具的應用 454
附錄B 關鍵概念檢索表 458