第一部分 基礎篇
第1章 準備開始 2
1.1 本書學習路綫圖 2
1.2 本書中的約定 3
1.2.1 示例代碼約定 4
1.2.2 圖示的約定 4
1.3 Xcode開發工具 6
1.3.1 Xcode安裝和卸載 7
1.3.2 Xcode界麵 10
1.4 如何使用API幫助 11
1.5 本章小結 14
1.6 同步練習 14
第2章 第一個Swift程序 15
2.1 使用Playground編寫 15
2.1.1 編程利器Playground 15
2.1.2 編寫HelloWorld程序 16
2.2 代碼解釋 20
2.3 本章小結 20
2.4 同步練習 20
第3章 Swift基本語法 21
3.1 標識符和關鍵字 21
3.1.1 標識符 21
3.1.2 關鍵字 22
3.2 常量和變量 22
3.2.1 常量 22
3.2.2 變量 23
3.2.3 命名規範 23
3.3 注釋 24
3.4 錶達式 25
3.5 本章小結 26
3.6 同步練習 26
第4章 基本運算符 28
4.1 算術運算符 28
4.1.1 一元運算符 28
4.1.2 二元運算符 29
4.1.3 算術賦值運算符 30
4.2 關係運算符 31
4.3 邏輯運算符 33
4.4 位運算符 34
4.5 其他運算符 36
4.6 本章小結 37
4.7 同步練習 37
第5章 基本數據類型 39
5.1 Swift數據類型 39
5.2 整型 39
5.3 浮點型 41
5.4 數字錶示方式 41
5.4.1 進製數字錶示 41
5.4.2 指數錶示 42
5.4.3 其他錶示 42
5.5 數字類型之間的轉換 42
5.5.1 整型之間的轉換 42
5.5.2 整型與浮點型之間的轉換 43
5.6 布爾型 44
5.7 元組類型 44
5.8 本章小結 45
5.9 同步練習 45
第6章 字符和字符串 47
6.1 字符 47
6.1.1 Unicode編碼 47
6.1.2 轉義符 48
6.2 創建字符串 49
6.3 字符串可變性 49
6.4 字符串比較 50
6.4.1 大小和相等比較 50
6.4.2 前綴和後綴比較 51
6.5 本章小結 52
6.6 同步練習 52
第7章 控製語句 53
7.1 分支語句 53
7.1.1 條件語句if 53
7.1.2 多分支語句switch 55
7.1.3 在switch中使用範圍匹配 57
7.1.4 在switch中比較元組類型 58
7.2 循環語句 60
7.2.1 while語句 60
7.2.2 do while語句 62
7.2.3 for語句 62
7.2.4 for in語句 63
7.3 跳轉語句 64
7.3.1 break語句 65
7.3.2 continue語句 66
7.3.3 fallthrough語句 68
7.4 本章小結 70
7.5 同步練習 70
第8章 集閤 74
8.1 數組集閤 74
8.1.1 數組聲明與初始化 75
8.1.2 數組的修改 76
8.1.3 數組遍曆 77
8.2 字典集閤 77
8.2.1 字典聲明與初始化 78
8.2.2 字典的修改 79
8.2.3 字典遍曆 80
8.3 集閤的復製 81
8.3.1 字典復製 81
8.3.2 數組復製 83
8.4 本章小結 85
8.5 同步練習 85
第9章 函數 87
9.1 使用函數 87
9.2 傳遞參數 88
9.2.1 使用外部參數名 88
9.2.2 參數默認值 89
9.2.3 可變參數 89
9.2.4 參數的傳遞引用 90
9.3 函數返迴值 91
9.3.1 無返迴值函數 91
9.3.2 多返迴值函數 92
9.4 函數類型 92
9.4.1 作為函數返迴類型使用 93
9.4.2 作為參數類型使用 94
9.5 函數重載 95
9.6 嵌套函數 96
9.7 泛型和泛型函數 97
9.7.1 一個問題的思考 98
9.7.2 泛型函數 98
9.8 本章小結 99
9.9 同步練習 99
第10章 閉包 103
10.1 迴顧嵌套函數 103
10.2 閉包的概念 104
10.3 使用閉包錶達式 105
10.3.1 類型推斷簡化 105
10.3.2 隱藏return關鍵字 106
10.3.3 縮寫參數名稱 106
10.3.4 使用閉包返迴值 107
10.4 使用尾隨閉包 107
10.5 捕獲上下文中的變量和常量 108
10.6 本章小結 109
10.7 同步練習 109
第二部分 麵嚮對象篇
第11章 Swift語言中的麵嚮對象特性 112
11.1 麵嚮對象概念和基本特徵 112
11.2 Swift中的麵嚮對象類型 112
11.3 枚舉 113
11.3.1 成員值 113
11.3.2 原始值 115
11.3.3 相關值 116
11.4 結構體與類 118
11.4.1 類和結構體定義 118
11.4.2 再談值類型和引用類型 119
11.4.3 引用類型的比較 121
11.5 類型嵌套 122
11.6 可選類型與可選鏈 123
11.6.1 可選類型 123
11.6.2 可選鏈 124
11.7 訪問限定 127
11.7.1 訪問範圍 127
11.7.2 訪問級彆 129
11.7.3 使用訪問級彆最佳實踐 130
11.8 本章小結 133
11.9 同步練習 133
第12章 屬性與下標 137
12.1 存儲屬性 137
12.1.1 存儲屬性概念 137
12.1.2 延遲存儲屬性 138
12.1.3 屬性觀察者 139
12.2 計算屬性 139
12.2.1 計算屬性概念 139
12.2.2 隻讀計算屬性 141
12.2.3 結構體和枚舉中的計算屬性 142
12.3 屬性觀察者 142
12.4 靜態屬性 144
12.4.1 結構體靜態屬性 146
12.4.2 枚舉靜態屬性 147
12.4.3 類靜態屬性 148
12.5 使用下標 148
12.5.1 下標概念 149
12.5.2 示例:二維數組 149
12.6 本章小結 151
12.7 同步練習 151
第13章 方法 153
13.1 實例方法 153
13.1.1 使用規範的命名 154
13.1.2 結構體和枚舉方法變異 157
13.2 靜態方法 158
13.2.1 結構體中靜態方法 158
13.2.2 枚舉中靜態方法 159
13.2.3 類中靜態方法 159
13.3 本章小結 160
13.4 同步練習 160
第14章 構造與析構 161
14.1 構造器 161
14.1.1 默認構造器 161
14.1.2 構造器與存儲屬性初始化 162
14.1.3 使用外部參數名 163
14.2 構造器重載 165
14.2.1 構造器重載概念 165
14.2.2 值類型構造器代理 166
14.2.3 引用類型構造器橫嚮代理 167
14.3 析構器 168
14.4 本章小結 173
14.5 同步練習 173
第15章 繼承 175
15.1 從一個示例開始 175
15.2 構造器繼承 176
15.2.1 構造器調用規則 176
15.2.2 構造過程安全檢查 178
15.2.3 構造器繼承 180
15.3 重寫 182
15.3.1 屬性重寫 182
15.3.2 方法重寫 185
15.3.3 下標重寫 186
15.3.4 使用final關鍵字 187
15.4 類型檢查與轉換 189
15.4.1 使用is操作符 190
15.4.2 使用as操作符 191
15.4.3 使用Any和AnyObject類型 192
15.5 本章小結 193
15.6 同步練習 193
第16章 擴展和協議 195
16.1 擴展 195
16.1.1 聲明擴展 195
16.1.2 擴展計算屬性 196
16.1.3 擴展方法 197
16.1.4 擴展構造器 198
16.1.5 擴展下標 200
16.2 協議 201
16.2.1 聲明和遵守協議 202
16.2.2 協議方法 202
16.2.3 協議屬性 205
16.2.4 把協議作為類型使用 207
16.2.5 協議的繼承 209
16.2.6 協議的閤成 210
16.3 擴展中聲明協議 212
16.4 本章小結 212
16.5 同步練習 213
第17章 Swift內存管理 215
17.1 Swift內存管理概述 215
17.1.1 引用計數 215
17.1.2 示例:Swift自動引用計數 216
17.2 強引用循環 218
17.3 打破強引用循環 221
17.3.1 弱引用 221
17.3.2 無主引用 223
17.4 閉包中的強引用循環 225
17.4.1 一個閉包中的強引用循環示例 226
17.4.2 解決閉包強引用循環 226
17.5 本章小結 228
17.6 同步練習 228
第三部分 過渡篇
第18章 從Objective-C到Swift 232
18.1 選擇語言 232
18.2 Swift調用Objective-C 232
18.2.1 創建Swift的iOS工程 233
18.2.2 在Swift工程中添加Objective-C類 234
18.2.3 調用代碼 235
18.3 Objective-C調用Swift 236
18.3.1 創建Objective-C的iOS工程 236
18.3.2 在Objective-C工程中添加Swift類 238
18.3.3 調用代碼 240
18.4 本章小結 241
18.5 同步練習 241
第19章 使用Foundation框架 243
19.1 數字類NSNumber 243
19.1.1 獲得NSNumber實例 243
19.1.2 NSNumber對象的比較 246
19.2 字符串類 247
19.2.1 NSString類 247
19.2.2 NSMutableString類 250
19.2.3 NSString與String之間的關係 251
19.3 數組類 252
19.3.1 NSArray類 252
19.3.2 NSMutableArray類 253
19.3.3 NSArray與Array之間的關係 254
19.4 字典類 255
19.4.1 NSDictionary類 255
19.4.2 NSMutableDictionary類 256
19.4.3 NSDictionary與Dictionary之間的關係 257
19.5 本章小結 258
19.6 同步練習 258
第四部分 實戰篇
第20章 iOS開發基礎 260
20.1 iOS介紹 260
20.2 第一個iOS應用HelloWorld 261
20.2.1 創建工程 261
20.2.2 Xcode中的iOS工程模闆 268
20.2.3 程序剖析 269
20.3 iOS API簡介 271
20.4 本章小結 272
20.5 同步練習 272
第21章 項目實戰——基於分層架構的多版本iPhone計算器 273
21.1 應用分析與設計 273
21.1.1 應用概述 273
21.1.2 需求分析 273
21.1.3 原型設計 274
21.1.4 分層架構設計 275
21.1.5 應用設計 276
21.2 創建工程 277
21.3 業務邏輯層開發 279
21.3.1 創建CalcLogic.swift文件 279
21.3.2 枚舉類型Operator 280
21.3.3 CalcLogic類中屬性 281
21.3.4 CalcLogic類中構造器和析構器 281
21.3.5 CalcLogic類中更新主標簽方法 282
21.3.6 CalcLogic類中判斷是否包含小數點方法 283
21.3.7 CalcLogic類中計算方法 283
21.3.8 CalcLogic類中清除方法 284
21.4 錶示層開發 285
21.4.1 添加圖片資源 285
21.4.2 改變設計界麵大小 287
21.4.3 添加計算器背景 287
21.4.4 在設計界麵中添加主標簽 289
21.4.5 在設計界麵中添加按鈕 291
21.4.6 控件的輸齣口和動作 295
21.4.7 視圖控製器 299
21.5 Objective-C版本的計算器 300
21.5.1 Xcode工程文件結構比較 300
21.5.2 錶示層比較 301
21.5.3 業務邏輯層比較 302
21.6 Swift調用Objective-C實現的計算器 305
21.6.1 在Swift工程中添加Objective-C類 306
21.6.2 調用代碼 308
21.7 Objective-C調用Swift實現的計算器 309
21.7.1 在Objective-C工程中添加Swift類 309
21.7.2 調用代碼 310
21.8 本章小結 313
21.9 同步練習 313
· · · · · · (
收起)