瘋狂Swift講義

瘋狂Swift講義

《瘋狂Swift講義》是2015年1月電子工業出版社出版的圖書,作者是李剛。

基本介紹

  • 中文名:瘋狂Swift講義
  • 作者:李剛
  • ISBN:9787121249815
  • 頁數:412頁
  • 定價:69元
  • 出版社:電子工業出版社
  • 出版時間:2015年1月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

Swift是2014年6月由Apple公司發布的程式語言,Swift發布之初就引起廣大開發者強烈的興趣。目前,Swift已經發布了正式版,其語法也趨於穩定。
本書以最新的OS X 10.10為平台,以Xcode 6.1為開發工具,全面介紹了Swift正式版的語法,以及使用Swif開發iOS套用的知識。全書從Swift基本語法開始介紹,詳細介紹了Swift的基本語法結構、Swift函式式編程特徵、Swift的面向對象特徵、Foundation框架的核心類庫用法等知識,並通過示例介紹了如何在iOS套用中混合使用Swift與Objective-C進行開發。掌握Swift語言之後,本書將帶領讀者掌握iOS套用開發的基本理論,以及iOS套用的MVC設計和事件處理編程。本書最後一章介紹了一個俄羅斯方塊遊戲。
本書並不局限於介紹Swift的簡單語法,而是從“項目驅動”的角度來講授理論,全書為Swift所有語法提供了大量的示例程式,大部分地方甚至從正、反兩方面舉例,務求使讀者能舉一反三地真正掌握Swift編程。如果讀者在閱讀本書時遇到了技術問題,可以登錄瘋狂Java聯盟發帖,筆者將會及時予以解答。

圖書目錄

第1章 Swift語言與開發環境 1
1.1 Swift語言簡介 2
1.1.1 Swift語言 2
1.1.2 關於Swift的幾個誤解 2
1.2 搭建Swift開發環境 3
1.2.1 下載和安裝Xcode 4
1.2.2 安裝輔助工具和文檔 6
1.3 第一個Swift程式 7
1.3.1 Swift程式入口 7
1.3.2 使用Playground工具 8
1.3.3 開發Swift項目 11
1.4 使用終端視窗編譯、運行Swift程式 13
1.4.1 使用swiftc編譯Swift程式 13
1.4.2 在早期版本的OS X平台上編譯Swift程式 14
1.4.3 使用swift互動命令 15
1.5 熟悉Xcode 16
1.5.1 創建iOS項目 16
1.5.2 熟悉導航面板 17
1.5.3 熟悉檢查器面板 20
1.5.4 熟悉庫面板 21
1.5.5 使用Xcode的幫助系統 23
1.6 本章小結 26
第2章 Swift的基本數據類型 27
2.1 注釋 28
2.2 變數與常量 29
2.2.1 分隔設定 29
2.2.2 標識符規則 31
2.2.3 Swift的關鍵字 31
2.2.4 聲明變數和常量 32
2.2.5 輸出變數和常量 33
2.3 整型 34
2.4 浮點型 35
2.5 數值型之間的類型轉換 37
2.5.1 整型之間的轉換 37
2.5.2 浮點型與整型之間的轉換 38
2.6 布爾型 39
2.7 元組(tuple)類型 40
2.7.1 定義元組類型的變數 40
2.7.2 獲取元組中的元素值 40
2.7.3 為元組中的元素命名 41
2.8 可選類型 42
2.8.1 可選和nil 42
2.8.2 強制解析 43
2.8.3 可選綁定 44
2.8.4 隱式可選類型 44
2.9 類型別名 45
2.10 字元和字元串 46
2.10.1 字元類型 46
2.10.2 字元串類型 47
2.10.3 字元串的可變性 49
2.10.4 字元串的基本操作 49
2.10.5 字元串比較 50
2.10.6 獲取字元串中字元的Unicode編碼 50
2.11 本章小結 51
第3章 運算符與表達式 52
3.1 賦值運算符 53
3.2 算術運算符 54
3.3 溢出運算符 57
3.3.1 值的上溢 57
3.3.2 值的下溢 58
3.3.3 除零溢出 58
3.4 位運算符 59
3.5 擴展後的賦值運算符 61
3.6 範圍運算符 61
3.6.1 閉範圍運算符 61
3.6.2 半開範圍運算符 62
3.7 比較運算符 62
3.8 邏輯運算符 63
3.8.1 Swift的6個邏輯運算符 63
3.8.2 組合邏輯與括弧 64
3.9 三目運算符 65
3.10 nil合併運算符 66
3.11 運算符的結合性和優先權 67
3.12 本章小結 68
第4章 流程控制 69
4.1 順序結構 70
4.2 分支結構 70
4.2.1 if條件語句 70
4.2.2 switch分支語句 73
4.2.3 switch不存在隱式貫穿(fallthrough)和顯式貫穿 74
4.2.4 使用break結束switch 76
4.2.5 switch的範圍匹配 76
4.2.6 switch的元組匹配 77
4.2.7 case的值綁定 78
4.2.8 case的where子句 79
4.3 循環結構 80
4.3.1 while循環語句 80
4.3.2 do while循環語句 81
4.3.3 for循環 82
4.3.4 for-in循環 84
4.3.5 嵌套循環 85
4.4 控制循環結構 86
4.4.1 使用break結束循環 86
4.4.2 使用continue忽略本次循環的剩下語句 87
4.4.3 使用return結束方法 88
4.5 本章小結 89
第5章 集合 90
5.1 數組 91
5.1.1 聲明和創建數組 91
5.1.2 使用數組 92
5.1.3 使用for-in遍歷數組 93
5.1.4 數組的可變性和數組的修改 94
5.1.5 多維數組 96
5.1.6 數組的套用舉例 99
5.2 字典 101
5.2.1 聲明和創建字典 102
5.2.2 使用字典 103
5.2.3 使用for-in遍歷字典 104
5.2.4 單獨使用字典的keys或values 104
5.2.5 字典的可變性和字典的修改 105
5.2.6 字典的套用舉例 106
5.3 集合的複製 107
5.3.1 數組的複製 107
5.3.2 字典的複製 109
5.4 本章小結 110
第6章 函式和閉包 111
6.1 函式入門 112
6.1.1 定義和調用函式 112
6.1.2 函式返回值 113
6.1.3 遞歸函式 115
6.2 函式的形參 116
6.2.1 外部形參名及其簡化形式 116
6.2.2 形參默認值 117
6.2.3 個數可變的形參 119
6.2.4 常量形參和變數形參 119
6.2.5 In-Out形參 120
6.3 函式類型 124
6.3.1 使用函式類型 124
6.3.2 使用函式類型作為形參類型 125
6.3.3 使用函式類型作為返回值類型 126
6.4 函式重載 127
6.5 嵌套函式 129
6.6 嵌套函式與閉包 130
6.6.1 回顧嵌套函式 130
6.6.2 使用閉包表達式代替嵌套函式 131
6.7 閉包表達式 132
6.7.1 調用閉包(使用閉包返回值) 132
6.7.2 利用上下文推斷類型 133
6.7.3 省略return 133
6.7.4 省略形參名 134
6.7.5 尾隨閉包 134
6.8 捕獲上下文中的變數和常量 136
6.9 閉包是引用類型 137
6.10 本章小結 137
第7章 面向對象(上) 139
7.1 Swift的面向對象支持 140
7.1.1 面向對象概述 140
7.1.2 Swift的面向對象類型 140
7.2 枚舉 141
7.2.1 定義枚舉 141
7.2.2 枚舉值和switch語句 143
7.2.3 原始值 144
7.2.4 關聯值 145
7.3 類和結構體 147
7.3.1 定義結構體和類 147
7.3.2 創建實例 151
7.3.3 值類型與引用類型 152
7.3.4 引用類型的比較 154
7.3.5 self關鍵字 156
7.3.6 類和結構體的選擇 158
7.4 存儲屬性 159
7.4.1 實例存儲屬性與實例變數 159
7.4.2 結構體常量與實例屬性 160
7.4.3 延遲存儲屬性 160
7.5 計算屬性 161
7.5.1 定義計算屬性 162
7.5.2 setter方法簡化 164
7.5.3 唯讀的計算屬性 164
7.6 屬性觀察者 165
7.7 方法 167
7.7.1 方法的所屬性 167
7.7.2 將方法轉換為函式 168
7.7.3 方法的外部形參名 169
7.7.4 Swift方法的命名習慣 171
7.7.5 值類型的可變方法 172
7.7.6 屬性和方法的統一 174
7.8 下標 175
7.8.1 下標的基本用法 175
7.8.2 下標重載 178
7.9 可選鏈 180
7.9.1 使用可選鏈代替強制解析 180
7.9.2 使用可選鏈調用方法 182
7.9.3 使用可選鏈調用下標 183
7.10 類型屬性和類型方法 183
7.10.1 類型成員的修飾符 184
7.10.2 值類型的類型屬性 184
7.10.3 類的類型屬性 185
7.10.4 值類型的類型方法 186
7.10.5 類的類型方法 186
7.11 構造器 187
7.11.1 類和結構體的默認構造器 187
7.11.2 構造器的外部形參名 188
7.11.3 在構造過程中常量屬性是
可修改的 190
7.11.4 使用閉包或函式為屬性設定初始值 191
7.11.5 值類型的構造器重載 192
7.12 可能失敗的構造器 194
7.12.1 結構體與可能失敗的構造器 194
7.12.2 枚舉與可能失敗的構造器 195
7.13 本章小結 196
第8章 面向對象(下) 197
8.1 繼承 198
8.1.1 繼承的特點 198
8.1.2 重寫父類的方法 199
8.1.3 重寫父類的屬性 200
8.1.4 重寫屬性觀察者 201
8.1.5 重寫父類的下標 202
8.1.6 使用final防止重寫 203
8.2 類的構造與析構 204
8.2.1 類的指定構造器和便利構造器 205
8.2.2 類的構造器鏈 206
8.2.3 兩段式構造 208
8.2.4 構造器的繼承和重寫 212
8.2.5 類與可能失敗的構造器 215
8.2.6 可能失敗的構造器的傳播 216
8.2.7 重寫可能失敗的構造器 217
8.2.8 子類必須包含的構造器 219
8.2.9 析構器 220
8.3 多態 221
8.3.1 多態性 221
8.3.2 使用is運算符檢查類型 223
8.3.3 使用as運算符向下轉型 223
8.3.4 Any和AnyObject 226
8.4 嵌套類型 226
8.5 擴展 227
8.5.1 使用擴展添加屬性 228
8.5.2 使用擴展添加方法 230
8.5.3 使用擴展添加可變方法 231
8.5.4 使用擴展添加構造器 232
8.5.5 使用擴展添加下標 232
8.5.6 使用擴展添加嵌套類型 233
8.6 協定 233
8.6.1 規範、接口與協定語法 233
8.6.2 協定指定的屬性要求 235
8.6.3 協定指定的方法要求 238
8.6.4 協定指定的可變方法要求 240
8.6.5 協定指定的下標要求 241
8.6.6 協定指定的構造器要求 243
8.6.7 使用協定作為類型 245
8.6.8 合成協定 246
8.6.9 通過擴展為已有的類型添加協定 247
8.6.10 唯類(Class-Only)協定 248
8.6.11 可選協定 249
8.6.12 輸出實例和Printable協定 251
8.6.13 使用自定義類型作為字典的key 252
8.7 隱藏與封裝 255
8.7.1 理解封裝 255
8.7.2 訪問控制符 256
8.7.3 訪問控制語法 257
8.7.4 使用訪問許可權定義類型 258
8.7.5 子類的訪問許可權 260
8.7.6 常量、變數、屬性、下標的訪問許可權 260
8.7.7 構造器的訪問許可權 262
8.7.8 協定的訪問許可權 262
8.7.9 擴展的訪問許可權 262
8.7.10 類型別名的訪問許可權 263
8.8 Swift記憶體管理 263
8.8.1 理解自動引用計數(ARC) 263
8.8.2 強引用循環 265
8.8.3 使用弱引用解決強引用循環 267
8.8.4 使用無主引用解決強引用循環 269
8.8.5 閉包與對象的強引用循環 271
8.8.6 使用弱引用或無主引用解決閉包的強引用循環 272
8.9 Swift面向對象語法總結 273
8.10 本章小結 274
第9章 泛型 275
9.1 泛型的作用 276
9.2 泛型函式 277
9.2.1 定義泛型函式 277
9.2.2 定義多個類型參數 278
9.3 泛型類型 280
9.3.1 定義泛型類型 280
9.3.2 從泛型類派生子類 281
9.3.3 擴展泛型類型 282
9.4 類型約束 283
9.5 關聯類型 285
9.5.1 使用關聯類型 285
9.5.2 擴展已有類型來確定關聯類型 287
9.6 where子句 287
9.7 本章小結 289
第10章 運算符函式 290
10.1 運算符重載 291
10.2 前置和後置運算符 293
10.3 擴展後的賦值運算符 295
10.4 比較運算符 295
10.5 自定義運算符 296
10.5.1 開發自定義運算符 297
10.5.2 自定義運算符的結合性和優先權 298
10.6 本章小結 299
第11章 Foundation框架詳解 300
11.1 包裝類 301
11.1.1 它們不是包裝類 301
11.1.2 NSValue和NSNumber 302
11.2 字元串(NSString與NSMutableString) 303
11.2.1 NSString的常用功能 303
11.2.2 可變字元串(NSMutableString) 305
11.3 日期與時間 306
11.3.1 日期與時間(NSDate) 306
11.3.2 日期格式器(NSDateFormatter) 307
11.3.3 日曆(NSCalendar)與日期組件(NSDateComponents) 309
11.4 數組(NSArray與NSMutableArray) 310
11.4.1 NSArray的功能與用法 310
11.4.2 對集合元素整體調用方法 313
11.4.3 對NSArray進行排序 314
11.4.4 使用枚舉器遍歷NSArray集合元素 315
11.4.5 可變數組(NSMutableArray) 316
11.5 集合(NSSet與NSMutableSet) 317
11.5.1 NSSet的功能與用法 317
11.5.2 NSSet判斷集合元素重複的標準 320
11.5.3 NSMutableSet的功能與用法 323
11.5.4 NSCountedSet的功能與用法 324
11.6 有序集合(NSOrderedSet與NSMutableOrderedSet) 325
11.7 字典(NSDictionary與NSMutableDictionary) 326
11.7.1 NSDictionary的功能與用法 327
11.7.2 對NSDictionary的key排序 330
11.7.3 對NSDictionary的key進行過濾 331
11.7.4 NSMutableDictionary的功能與用法 332
11.8 本章小結 333
第12章 使用Swift開發iOS套用 334
12.1 從iOS項目開始 335
12.1.1 iOS項目包含的檔案 335
12.1.2 Interface Builder簡介 336
12.1.3 添加控制項 338
12.1.4 修改控制項屬性 339
12.1.5 UIView支持的屬性 340
12.1.6 UILabel支持的屬性 343
12.2 MVC 345
12.2.1 程式入口和應用程式代理 345
12.2.2 理解iOS的MVC 347
12.2.3 掌握UIViewController控制器 348
12.3 事件機制 350
12.3.1 程式獲取控制項的兩種方式 350
12.3.2 事件處理的3種方式 356
12.4 代碼控制UI界面 362
12.4.1 不使用界面設計檔案開發UI界面 362
12.4.2 使用代碼創建UI界面 364
12.4.3 自定義UI控制項 366
12.5 本章小結 369
第13章 Objective-C與Swift混編 370
13.1 Swift調用Objective-C 371
13.1.1 創建Swift項目 371
13.1.2 添加Objective-C類 372
13.1.3 調用Objective-C類 374
13.2 Objective-C調用Swift 376
13.2.1 為Objective-C項目添加Swift類 376
13.2.2 調用Swift類 378
13.3 本章小結 379
第14章 俄羅斯方塊 380
14.1 俄羅斯方塊簡介 381
14.2 開發遊戲界面 382
14.2.1 界面布局設計 382
14.2.2 開發遊戲界面控制項 385
14.3 俄羅斯方塊的數據模型 387
14.3.1 定義數據模型 387
14.3.2 初始化遊戲狀態數據 388
14.4 實現遊戲邏輯 391
14.4.1 處理方塊掉落 391
14.4.2 處理方塊左移 396
14.4.3 處理方塊右移 397
14.4.4 處理方塊旋轉 398
14.4.5 啟動遊戲 401
14.5 本章小結 402

相關詞條

熱門詞條

聯絡我們