第Ⅰ部分構建Swift應用第1章Swift入門 3
1.1什么是Swift 3
1.2為什么要學習Swift 4
1.3使用常量和變量 5
1.3.1理解Swift數據類型 6
1.3.2使用類型注解 12
1.3.3使用類型推導簡化類型
注解 13
1.3.4使用類型別名簡化代碼 14
1.4使用運算符 15
1.4.1使用基本運算符 15
1.4.2使用復合賦值運算符 16
1.4.3使用溢出運算符 16
1.4.4使用范圍運算符 17
1.4.5使用邏輯運算符 17
1.4.6使用比較運算符 18
1.4.7使用自定義運算符 19
1.5使用控制流進行判斷 19
1.5.1使用條件語句 19
1.5.2使用循環 22
1.5.3控制轉移語句 24
1.6使用枚舉組織類型 25
1.7使用函數 26
1.7.1聲明函數 27
1.7.2指定參數名稱 27
1.7.3定義默認參數 28
1.7.4指定可變參數 28
1.7.5指定常量、變量和輸入-輸出參數 29
1.7.6函數類型 30
1.7.7使用閉包 31
1.8本章小結 33
第2章編寫Swift程序 35
2.1設置Xcode 35
2.1.1從Apple開發者門戶網站下載 36
2.1.2下載Xcode 36
2.2試驗Playground 37
2.2.1在Xcode中使用Playground 38
2.2.2使用Playground的簡單示例 38
2.2.3一個更令人興奮的Playground示例 40
2.3在Xcode中編寫Swift程序 41
2.3.1建立一個新的Swift項目 42
2.3.2建立Swiftisms應用 45
2.4調試Swift應用 51
2.4.1理解斷點類型 52
2.4.2設置斷點 52
2.4.3使用調試器 53
2.5本章小結 57
第3章類、結構和枚舉 59
3.1使用類和結構 59
3.1.1定義類和結構 60
3.1.2初始化類和結構 61
3.1.3析構類 67
3.2使用屬性 67
3.2.1使用簡單屬性 67
3.2.2使用延遲屬性 69
3.2.3使用計算屬性 69
3.2.4觀察屬性的變化 70
3.3理解方法 71
3.4理解類和結構的不同之處 73
3.5使用枚舉 75
3.6本章小結 76
第4章Swift中的并發 77
4.1什么是并發 77
4.1.1理解進程 78
4.1.2理解線程 79
4.1.3為什么使用并發 80
4.1.4設計并行程序 80
4.2iOS和OSX中的并發 81
4.2.1理解事件循環 81
4.2.2理解運行循環 81
4.2.3理解異步方法 82
4.2.4理解NSTimer 83
4.2.5理解NSThread 85
4.2.6理解GrandCentralDispatch 86
4.3本章小結 88
第5章與Web服務交互 89
5.1理解Web服務 89
5.2實現Web服務客戶端 91
5.2.1注冊Firebase賬號 91
5.2.2布局用戶界面 91
5.2.3掛接AddAlbumViewController 96
5.2.4建立專輯模型 98
5.2.5與Firebase通信 99
5.2.6連接視圖和數據模型 106
5.2.7連接過渡 110
5.2.8運行應用 111
5.3本章小結 112
第6章使用CoreData存儲數據 113
6.1什么是CoreData 113
6.2CoreData棧 114
6.3在Swift中使用CoreData 115
6.3.1設置Birthdays應用 116
6.3.2獲取用戶輸入 122
6.3.3顯示數據 133
6.4本章小結 142
第Ⅱ部分高級Swift概念
第7章擴展類 145
7.1使用類擴展 145
7.1.1向類中添加方法 146
7.1.2向類中添加屬性 148
7.1.3在擴展中修改類 148
7.2使用協議指定行為 149
7.2.1采用協議 149
7.2.2聲明屬性和方法 150
7.2.3使用可選方法和屬性 152
7.2.4協議是類型 153
7.2.5繼承其他協議 156
7.2.6在類擴展中采用協議 157
7.3使用泛型 158
7.3.1泛型類 159
7.3.2使用類型約束 160
7.4本章小結 162
第8章高級數據類型 163
8.1使用枚舉和代數數據類型 163
8.1.1匹配模式 164
8.1.2通過JSON串聯這些知識 166
8.2使用可選類型 168
8.2.1使用null值 168
8.2.2拒絕null值 168
8.2.3理解Swift中的null 169
8.2.4可選值鏈 170
8.3理解類型轉換 171
8.4使用元組組織值 173
8.5自定義運算符 174
8.5.1自定義運算符 179
8.5.2定義優先級和結合性 179
8.5.3和運算符有關的最后一些話 182
8.6使用函數和閉包 183
8.7本章小結 184
第9章橋接Swift和Objective-C 185
9.1Objective-C的繼承者 185
9.2引入命名空間和模塊 186
9.2.1使用命名空間組織代碼 187
9.2.2使用模塊分發代碼 188
9.3Swift和Objective-C如何交互 190
9.3.1在Objective-C中使用Swift類 190
9.3.2在Swift中使用Objective-C 194
9.4在Swift中使用C和C++代碼 197
9.4.1使用C標量類型 198
9.4.2使用C指針訪問內存 198
9.4.3在Swift中使用全局常量和定義 199
9.4.4在Swift中調用C代碼 200
9.4.5在Swift中使用C++代碼 201
9.5本章小結 202
第10章調試Swift應用 203
10.1調試的藝術 203
10.2創建CircleView 204
10.2.1繪制圓形 204
10.2.2添加滑動條 206
10.2.3完成項目 207
10.3輸出值 209
10.4使用調試器 211
10.5使用lldb檢查錯誤 211
10.5.1基本斷點 212
10.5.2使用lldb檢查程序 213
10.5.3移除或禁用斷點 217
10.5.4設置條件斷點 217
10.5.5設置符號斷點 218
10.5.6探索調試器的使用 219
10.6本章小結 223
第11章Swift運行時 225
11.1運行時的含義 225
11.2理解Objective-C運行時 226
11.2.1在Objective-C中動態委派方法 227
11.2.2消息傳遞 228
11.2.3解析方法 229
11.2.4消息和方法 233
11.3研究Swift運行時 234
11.3.1理解虛擬方法表 234
11.3.2加載Swift程序 237
11.4本章小結 241
附錄AC語言概述 243