第一部分 基礎篇
第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 代碼解釋 19
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章 控製語句 54
7.1 分支語句 54
7.1.1 條件語句if 54
7.1.2 多分支語句switch 56
7.1.3 在switch中使用範圍匹配 58
7.1.4 在switch中比較元組類型 59
7.2 循環語句 61
7.2.1 while語句 61
7.2.2 do while語句 63
7.2.3 for語句 63
7.2.4 for in語句 64
7.3 跳轉語句 65
7.3.1 break語句 66
7.3.2 continue語句 67
7.3.3 fallthrough語句 69
7.4 本章小結 71
7.5 同步練習 71
第8章 集閤 75
8.1 數組集閤 75
8.1.1 數組聲明與初始化 76
8.1.2 數組的修改 77
8.1.3 數組遍曆 78
8.2 字典集閤 78
8.2.1 字典聲明與初始化 79
8.2.2 字典的修改 80
8.2.3 字典遍曆 81
8.3 集閤的復製 82
8.3.1 字典復製 82
8.3.2 數組復製 84
8.4 本章小結 86
8.5 同步練習 86
第9章 函數 88
9.1 使用函數 88
9.2 傳遞參數 89
9.2.1 使用外部參數名 89
9.2.2 參數默認值 90
9.2.3 可變參數 90
9.2.4 參數的傳遞引用 91
9.3 函數返迴值 92
9.3.1 無返迴值函數 92
9.3.2 多返迴值函數 93
9.4 函數類型 93
9.4.1 作為函數返迴類型使用 94
9.4.2 作為參數類型使用 95
9.5 函數重載 96
9.6 嵌套函數 97
9.7 泛型和泛型函數 98
9.7.1 一個問題的思考 99
9.7.2 泛型函數 99
9.8 本章小結 100
9.9 同步練習 100
第10章 閉包 104
10.1 迴顧嵌套函數 104
10.2 閉包的概念 105
10.3 使用閉包錶達式 106
10.3.1 類型推斷簡化 106
10.3.2 隱藏return關鍵字 107
10.3.3 縮寫參數名稱 107
10.3.4 使用閉包返迴值 108
10.4 使用尾隨閉包 108
10.5 捕獲上下文中的變量和常量 109
10.6 本章小結 110
10.7 同步練習 110
第二部分 麵嚮對象篇
第11章 Swift語言中的麵嚮對象特性 114
11.1 麵嚮對象概念和基本特徵 114
11.2 Swift中的麵嚮對象類型 114
11.3 枚舉 115
11.3.1 成員值 115
11.3.2 原始值 117
11.3.3 相關值 118
11.4 結構體與類 120
11.4.1 類和結構體定義 120
11.4.2 再談值類型和引用類型 121
11.4.3 引用類型的比較 123
11.5 類型嵌套 124
11.6 可選類型與可選鏈 125
11.6.1 可選類型 125
11.6.2 可選鏈 126
11.7 本章小結 129
11.8 同步練習 130
第12章 屬性與下標 134
12.1 存儲屬性 134
12.1.1 存儲屬性概念 134
12.1.2 延遲存儲屬性 135
12.1.3 屬性觀察者 136
12.2 計算屬性 136
12.2.1 計算屬性概念 136
12.2.2 隻讀計算屬性 138
12.2.3 結構體和枚舉中的計算
屬性 139
12.3 屬性觀察者 139
12.4 靜態屬性 141
12.4.1 結構體靜態屬性 143
12.4.2 枚舉靜態屬性 144
12.4.3 類靜態屬性 145
12.5 使用下標 145
12.5.1 下標概念 146
12.5.2 示例:二維數組 146
12.6 本章小結 148
12.7 同步練習 148
第13章 方法 150
13.1 實例方法 150
13.1.1 使用規範的命名 151
13.1.2 結構體和枚舉方法變異 154
13.2 靜態方法 155
13.2.1 結構體中靜態方法 155
13.2.2 枚舉中靜態方法 156
13.2.3 類中靜態方法 156
13.3 本章小結 157
13.4 同步練習 157
第14章 構造與析構 158
14.1 構造器 158
14.1.1 默認構造器 158
14.1.2 構造器與存儲屬性初始化 159
14.1.3 使用外部參數名 160
14.2 構造器重載 162
14.2.1 構造器重載概念 162
14.2.2 值類型構造器代理 163
14.2.3 引用類型構造器橫嚮代理 164
14.3 析構器 165
14.4 本章小結 166
14.5 同步練習 166
第15章 繼承 169
15.1 從一個示例開始 169
15.2 構造器繼承 170
15.2.1 構造器調用規則 170
15.2.2 構造過程安全檢查 172
15.2.3 構造器自動繼承 175
15.3 重寫 177
15.3.1 屬性重寫 177
15.3.2 方法重寫 179
15.3.3 下標重寫 180
15.3.4 使用final關鍵字 182
15.4 類型檢查與轉換 183
15.4.1 使用is操作符 185
15.4.2 使用as操作符 185
15.4.3 使用Any和AnyObject類型 187
15.5 本章小結 187
15.6 同步練習 188
第16章 擴展和協議 190
16.1 擴展 190
16.1.1 聲明擴展 190
16.1.2 擴展計算屬性 191
16.1.3 擴展方法 192
16.1.4 擴展構造器 193
16.1.5 擴展下標 195
16.2 協議 196
16.2.1 聲明和遵守協議 197
16.2.2 協議方法 197
16.2.3 協議屬性 200
16.2.4 把協議作為類型使用 202
16.2.5 協議的繼承 204
16.2.6 協議的閤成 205
16.3 擴展中聲明協議 207
16.4 本章小結 207
16.5 同步練習 208
第17章 Swift內存管理 210
17.1 Swift內存管理概述 210
17.1.1 引用計數 210
17.1.2 示例:Swift自動引用計數 211
17.2 強引用循環 213
17.3 打破強引用循環 216
17.3.1 弱引用 216
17.3.2 無主引用 218
17.4 閉包中的強引用循環 220
17.4.1 一個閉包中的強引用循環示例 221
17.4.2 解決閉包強引用循環 221
17.5 本章小結 223
17.6 同步練習 223
第三部分 過渡篇
第18章 從Objective-C到Swift 226
18.1 選擇語言 226
18.2 Swift調用Objective-C 226
18.2.1 創建Swift工程 227
18.2.2 在Swift工程中添加
Objective-C類 229
18.2.3 調用代碼 230
18.3 Objective-C調用Swift 232
18.3.1 創建Objective-C工程 233
18.3.2 在Objective-C工程中添加Swift類 234
18.3.3 調用代碼 235
18.4 本章小結 236
18.5 同步練習 237
第19章 使用Foundation框架 238
19.1 數字類NSNumber 238
19.1.1 獲得NSNumber實例 238
19.1.2 NSNumber對象的比較 241
19.2 字符串類 242
19.2.1 NSString類 242
19.2.2 NSMutableString類 245
19.2.3 NSString與String之間的關係 246
19.3 數組類 247
19.3.1 NSArray類 247
19.3.2 NSMutableArray類 248
19.3.3 NSArray與Array之間的關係 249
19.4 字典類 250
19.4.1 NSDictionary類 250
19.4.2 NSMutableDictionary類 251
19.4.3 NSDictionary與Dictionary之間的關係 252
19.5 本章小結 253
19.6 同步練習 253
第四部分 實戰篇
第20章 iOS開發基礎 256
20.1 iOS介紹 256
20.2 第一個iOS應用HelloWorld 257
20.2.1 創建工程 257
20.2.2 Xcode中的iOS工程模闆 265
20.2.3 程序剖析 266
20.3 iOS API簡介 268
20.4 本章小結 268
20.5 同步練習 268
第21章 項目實戰——基於分層架構的多版本iPhone計算器 270
21.1 應用分析與設計 270
21.1.1 應用概述 270
21.1.2 需求分析 270
21.1.3 原型設計 271
21.1.4 分層架構設計 272
21.1.5 應用設計 273
21.2 創建工程 274
21.3 業務邏輯層開發 276
21.3.1 創建CalcLogic.swift文件 276
21.3.2 枚舉類型Operator 277
21.3.3 CalcLogic類中屬性 278
21.3.4 CalcLogic類中構造器和析構器 278
21.3.5 CalcLogic類中更新主標簽方法 279
21.3.6 CalcLogic類中判斷是否包含小數點方法 280
21.3.7 CalcLogic類中計算方法 280
21.3.8 CalcLogic類中清除方法 281
21.4 錶示層開發 282
21.4.1 添加圖片資源 282
21.4.2 改變設計界麵大小 284
21.4.3 添加計算器背景 284
21.4.4 在設計界麵中添加主標簽 286
21.4.5 在設計界麵中添加按鈕 288
21.4.6 控件的輸齣口和動作 292
21.4.7 視圖控製器 296
21.5 Objective-C版本的計算器 297
21.5.1 Xcode工程文件結構比較 297
21.5.2 錶示層比較 298
21.5.3 業務邏輯層比較 299
21.6 Swift調用Objective-C實現的計算器 302
21.6.1 在Swift工程中添加Objective-C類 303
21.6.2 調用代碼 305
21.7 Objective-C調用Swift實現的計算器 306
21.7.1 在Objective-C工程中添加Swift類 306
21.7.2 調用代碼 307
21.8 本章小結 310
21.9 同步練習 310
· · · · · · (
收起)