第1 章 搭建Swift 開發環境 … 1
1.1 Swift 介紹 ... 1
1.1.1 Swift 的前世今生 ...... 1
1.1.2 Swift 與Objective - C … 2
1.2 Mac OS X 操作係統 ........ 3
1.3 Xcode 簡介和獲取方法 .. 4
1.3.1 Xcode 簡介 ........ 4
1.3.2 Playground 簡介 4
1.3.3 Xcode 的獲取方法 ..... 5
1.4 iPhone SDK 簡介.. … 6
第2 章 Swift 基礎語法 ........ 7
2.1 基礎知識.. … 7
2.1.1 命名規則… 7
2.1.2 常量與變量 ....... 8
2.1.3 類型推測 .. 9
2.1.4 注釋 . … 9
2.1.5 輸齣常量和變量 ...... 10
2.2 基本數據類型 ..... 11
2.2.1 整數 ........ 11
2.2.2 浮點數 .... 11
2.2.3 布爾類型 11
2.2.4 元組類型 12
2.2.5 可選型 .... 13
2.3 基本運算符 15
2.3.1 賦值運算符 ..... 15
2.3.2 數值運算 … 15
2.3.3 自增和自減運算 ...... 16
2.3.4 復閤賦值 … 16
2.3.5 比較運算 … 16
2.3.6 三元運算符 ..... 16
2.3.7 邏輯運算符 ..... 17
2.3.8 範圍 ........ 17
2.3.9 括號優先級 ..... 18
2.4 字符串與字符 ..... 18
2.5 集閤類型... 22
2.5.1 數組 ........ 22
2.5.2 集閤 ........ 25
2.5.3 字典 ........ 26
2.6 控製流 ...... 27
2.6.1 for 循環 .. … 27
2.6.2 while 循環 ....... 28
2.6.3 if 判斷語句 ...... 29
2.6.4 switch 開關語句 ....... 29
2.7 函數 . … 31
2.8 閉包 . … 34
2.9 Swift 三傑——類、結構體、枚舉 ....... 37
2.9.1 Swift 三傑簡介 ........ 37
2.9.2 值引用與類型引用 .. 38
2.9.3 類 .. 38
2.9.4 結構體 .... 39
2.9.5 枚舉 ........ 40
2.10 屬性 … 41
2.10.1 存儲屬性 ....... 41
2.10.2 計算屬性 ....... 42
2.10.3 屬性觀察器 ... 44
2.10.4 類型屬性 ....... 45
2.11 方法 . …46
2.12 下標 …. 49
2.13 繼承 . …51
2.14 構造與析構 …53
2.14.1 構造器 .. 54
2.14.2 析構器 .. 57
2.15 類型檢查與類型轉換 .. 58
2.15.1 類型檢查 ....... 59
2.15.2 類型轉換 ....... 60
2.16 類型嵌套... 61
2.17 擴展 . ..62
2.17.1 擴展計算屬性 ........ 62
2.17.2 擴展構造器 ... 63
2.17.3 擴展方法 ....... 63
2.17.4 擴展下標 ....... 64
2.18 協議 ........ 64
2.18.1 聲明協議 ....... 64
2.18.2 遵守協議 ....... 66
2.18.3 實現協議 ....... 66
2.19 泛型 … 66
2.20 斷言 . …67
第3 章 Swift 進階語法 .. 69
3.1 再談可選型 69
3.1.1 可選型 .... 69
3.1.2 為什麼要用可選型 .. 70
3.1.3 解包可選型 ..... 71
3.1.4 可選綁定 …72
3.1.5 可選鏈 .... 73
3.2 AnyObject . ….74
3.2.1 AnyObject 簡介 ........ 74
3.2.2 AnyObject 的使用 .... 74
3.3 幾個數組相關的實用方法 ... 76
3.3.1 filter 方法 ........ 76
3.3.2 map 方法 …..76
3.3.3 reduce 方法 ..... 78
3.3.4 sort 方法 . ….78
3.3.5 contains 方法 ... 78
3.3.6 find 方法 . …79
3.4 Objective - C 兼容性 ... 79
3.5 ARC 自動引用計數 .... 80
3.5.1 ARC 原理 ........ 80
3.5.2 循環強引用 ..... 82
3.5.3 弱引用與無主引用 …. 83
3.6 帶下標的遍曆 ..... 84
3.6.1 C 語言風格的for 循環 ..... 85
3.6.2 快速遍曆 …85
3.6.3 enumerateObjectsUsingBlock .... 85
3.6.4 enumerate ........ 85
3.7 方法參數的語法甜頭 .. 86
3.7.1 可變參數 ….86
3.7.2 柯裏化 .... 86
3.8 閉包的“延遲調用”特性 ... 88
3.9 Swift 2.0 新特性詳解 .. 90
3.9.1 println 簡化為print .. 90
3.9.2 do-while 更名為repeat-while .... 91
3.9.3 where 關鍵字 .. 91
3.9.4 if-case 結構 ..... 92
3.9.5 guard 關鍵字 ... 92
3.9.6 錯誤處理 ….93
3.9.7 LLVM 與泛型特化 .. 96
3.9.8 Protocol Extensions .. 97
3.9.9 API 的可用性檢查 ... 98
3.9.10 String 與NSString 言歸於好 ... 99
3.9.11 總結 .... 100
第4 章 iOS 開發中的MVC 模式 ... 101
4.1 iOS 係統初探 ... 101
4.1.1 核心OS(Core OS)層 . …102
4.1.2 核心服務(Core Services)層 ….102
4.1.3 媒體(Media)層 .. 103
4.1.4 Cocoa Touch 層 ...... 103
4.2 MVC 模式 ........ 103
4.2.1 MVC 簡介 ..... 103
4.2.2 iOS 中的MVC ....... 103
4.3 新建一個Swift 工程 . 106
4.4 認識Interface Builder ........ 109
4.5 構建計算器界麵 ........ 112
4.5.1 使用對象庫中的對象 ..... 113
4.5.2 使用檢查器設置對象 ..... 114
4.5.3 嘗試運行程序 ........ 115
4.5.4 添加約束 ....... 117
4.5.5 關聯代碼 ....... 120
4.5.6 完善按鍵 ....... 125
4.6 實現計算器邏輯 ........ 126
4.6.1 補全鍵盤 ....... 127
4.6.2 給鍵盤添加約束 .... 128
4.6.3 實現數字顯示功能 131
4.6.4 實現運算邏輯 . ….133
4.7 修改計算器為MVC 模式 .. 135
4.8 NSNotification .. ..137
4.8.1 NSNotification 簡介 ........ 137
4.8.2 addObserver 方法 ... 138
4.8.3 addObserverForName 方法 ...... 141
4.8.4 postNotification 方法 ...... 142
第5 章 掌控UIKit ....... 143
5.1 本地化 .... 143
5.2 視圖(View) ….. 145
5.3 生命周期. 149
5.3.1 APP 的生命周期 .... 149
5.3.2 控製器的生命周期 150
5.4 Button(按鈕) …..151
5.4.1 按鈕屬性檢查器 .... 152
5.4.2 按鈕的代碼實現 .... 153
5.4.3 為按鈕添加事件 .... 155
5.5 Label(標簽) . …..156
5.5.1 Label 的屬性檢查器 ....... 157
5.5.2 Label 的代碼實現 .. 158
5.6 TextField(文本框) ……159
5.6.1 Text Field 的屬性檢查器 ……160
5.6.2 Text Field 的代碼實現 .... 161
5.6.3 鍵盤 ...... 162
5.7 Switch(開關) ........ 163
5.8 Segmented Control(分段控件) ........ 165
5.8.1 Segmented Control 的屬性檢查器 ... 166
5.8.2 Segmented Control 的代碼實現 ....... 166
5.8.3 “按鈕”還是“分段” . …..168
5.9 Slider(滑塊) …… 169
5.9.1 Slider 的屬性檢查器 ....... 169
5.9.2 Slider 的代碼實現 ….. 170
5.10 ProgressView&ActivityIndicatorView . 171
5.10.1 多綫程入門 . 171
5.10.2 ProgressView(進度條) ...... 173
5.10.3 ActivityIndicatorView(環形進度條) .. 175
5.11 Stepper(步進器) ... 177
5.11.1 Stepper 的屬性檢查器 .. 178
5.11.2 Stepper 的代碼實現 ...... 178
5.12 ImageView(圖像控件) .. 179
5.12.1 UIImageView&UIImage ........ 180
5.12.2 UIImageView 的屬性檢查器 …….182
5.12.3 UIImageView 的代碼實現 .... 182
5.13 PickerView&DatePicker ..... 186
5.13.1 PickerView(選擇器)簡介 …….. 186
5.13.2 使用delegate 和dataSource .. 187
5.13.3 PickerView 的代碼實現 ........ 189
5.13.4 DatePicker(日期選擇器)的屬性檢查器 ...... 192
5.13.5 DatePicker 的代碼實現 …….194
5.13.6 淺談“Delegate pattern”委托模式 ........ 194
5.14 AlertView&ActionSheet ..... 195
5.14.1 AlertView(提醒框) ……. 195
5.14.2 ActionSheet(操作錶) ........ 198
5.14.3 更好的選擇:UIAlertController .... 200
5.15 多重MVC 及Segue(過渡) .... 204
5.15.1 多重MVC 與Segue 簡介 ..... 204
5.15.2 NavigationController(導航控製器) .... 207
5.15.3 Segue(過渡) .... 214
5.15.4 SplitViewController(分屏控製器) ...... 223
5.15.5 TabBarController(選項卡控製器) ...... 225
5.15.6 PageViewController(頁麵控製器) ...... 232
5.16 Toolbar(工具欄) ... 239
5.17 ScrollView(滾動視圖) .. …242
5.17.1 ScrollView 簡介 ... 242
5.17.2 CGFloat、CGPoint、CGSize ……242
5.17.3 視圖的坐標係統 .. 242
5.17.4 ScrollView 實戰 ... 243
5.18 TableViewController(錶視圖控製器) ...... 246
5.18.1 UITableView 簡介 ........ 246
5.18.2 UITableViewCell 簡介 ….. 249
5.18.3 TabelView 與cell 的交互 ...... 250
5.19 SearchBar(搜索框) ........ 255
5.19.1 SearchBar 的屬性檢查器 ....... 255
5.19.2 實時顯示搜索結果的SearchBar .... 257
5.20 iOS 與Web ....... 260
5.20.1 UIWebView ……. 260
5.20.2 WKWebView ....... 263
5.20.3 SFSafariViewController ……264
5.21 AutoLayout&StackView ..... 266
5.21.1 AutoLayout(自動布局) ..... 266
5.21.2 UIStackView(堆棧視圖) ... 276
第6 章 iOS 開發揭秘 ……. 280
6.1 Gesture(手勢) ....... 280
6.2 KVC 與API 設計 ...... 285
6.3 訪問短信API 與電話API . …..289
6.3.1 使用URL 訪問短信API 與電話API ....... 289
6.3.2 MessageUI ..... 290
6.4 訪問相冊API 與相機API …… 292
6.5 快速分享API ... 295
6.6 地圖與定位API ........ 300
6.7 網絡通信. ….310
· · · · · · (
收起)