瘋狂Swift講義(第2版)

瘋狂Swift講義(第2版) pdf epub mobi txt 电子书 下载 2025

李剛 著
圖書標籤:
  • Swift
  • iOS開發
  • 編程
  • 移動開發
  • 教程
  • 書籍
  • 蘋果
  • Xcode
  • SwiftUI
  • 開發者
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 电子工业出版社
ISBN:9787121280764
版次:2
商品编码:11883734
品牌:Broadview
包装:平装
开本:16开
出版时间:2016-03-01
用纸:胶版纸
页数:416
正文语种:中文

具体描述

産品特色


編輯推薦

  基於Swift 2.1版本寫成,針對Swift 1.x和2.x變化比較大的特點進行瞭徹底升級。

  不僅百分百覆蓋Apple官方Swift編程指南,更有豐富案例便於讀者學習和領悟。

  書中代碼的注釋非常詳細,不僅注釋的數量龐大,而且把一些簡單知識點之間寫到注釋裏,力求讀者輕鬆上手。

  在書中前言的*後位置列齣瞭*書配套代碼的下載地址,供讀者免費試用。

內容簡介

  Swift正逐步進入iOS APP的實際應用開發,而Apple在WWDC2015上發布瞭Swift 2.0版本,這也錶明瞭Apple對Swift的支持決心,不難預測,Swift的市場份額肯定會超過傳統的Objective-C。

  本書是《瘋狂Swift講義》的第2版,本書以*新的OS X 10.11為平颱、以Xcode 7.1為開發工具,*麵介紹瞭Swift 2.1的語法以及使用Swift開發iOS應用的知識。本書*麵覆蓋瞭Swift的基本語法結構、Swift函數式編程特徵、Swift的麵嚮對象特徵、Foundation框架的核心類庫用法等知識,並通過示例介紹瞭如何在iOS應用中混閤使用Swift與Objective-C進行開發。本書重點介紹瞭repeat while循環、guard語句、API檢查、條件編譯、Set集閤、錯誤處理機製、協議擴展等Swift 2.x新增的內容,這樣新增的內容使得Swift具有更強的生命力。

  本書並不局限於介紹Swift的簡單語法,而是從“項目驅動”的角度來講授理論。*書為Swift所有語法提供瞭大量的示例程序,大部分地方甚至從正、反兩方麵舉例,務求使讀者能舉一反三地真正掌握Swift編程。如果讀者在閱讀本書時遇到瞭技術問題,可以登錄瘋狂Java聯盟(http://www.crazyit.org)發帖,筆者將會及時予以解答。

作者簡介

   李剛,十餘年軟件開發從業經驗,瘋狂軟件教育中心教學總監。瘋狂Java實訓營創始人,瘋狂Java體係原創圖書作者。廣東技術師範學院計算機科學係兼職副教授,51CTO專傢門診特邀嘉賓。培訓的學生已在華為、IBM、阿裏軟件、網易、電信盈科等名企就職。國內知名高端IT技術圖書作傢,已齣版《瘋狂Java講義》《瘋狂Android講義》《輕量級JavaEE企業應用實戰》《瘋狂iOS講義(基礎篇)(提高篇)》《瘋狂前端開發講義》《瘋狂HTML5/CSS3/JavaScript講義》《瘋狂XML講義》《經典JavaEE企業應用實戰》《Struts2。x專業指南》等著作。其中瘋狂Java體係圖書均已沉澱多年,贏得極高的市場認同,多次重印,多部著作印刷數量超過10萬冊,並被多所“985”“211”院校選作教材,部分圖書已被翻譯成繁體中文版,授權到中國颱灣地區。


目錄

第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項目 10
1.4 使用終端窗口編譯、運行Swift程序 12
1.4.1 使用swiftc編譯Swift程序 12
1.4.2 使用swift交互命令 14
1.5 熟悉Xcode 14
1.5.1 創建iOS項目 14
1.5.2 熟悉導航麵闆 15
1.5.3 熟悉檢查器麵闆 18
1.5.4 熟悉庫麵闆 20
1.5.5 使用Xcode的幫助係統 22
1.6 本章小結 24
第2章 Swift的基本數據類型 25
2.1 注釋 26
2.2 變量與常量 27
2.2.1 分隔符 27
2.2.2 標識符規則 29
2.2.3 Swift的關鍵字 29
2.2.4 聲明變量和常量 30
2.2.5 輸齣變量和常量 32
2.3 整型 32
2.4 浮點型 34
2.5 數值型之間的類型轉換 35
2.5.1 整型之間的轉換 35
2.5.2 浮點型與整型之間的轉換 37
2.6 Bool型 38
2.7 元組(tuple)類型 38
2.7.1 定義元組類型的變量 39
2.7.2 獲取元組中的元素值 39
2.7.3 為元組中的元素命名 40
2.8 可選類型 40
2.8.1 可選和nil 41
2.8.2 強製解析 42
2.8.3 可選綁定 43
2.8.4 隱式可選類型 43
2.9 類型彆名 45
2.10 字符和字符串 45
2.10.1 字符類型 45
2.10.2 字符串類型 46
2.10.3 字符串的可變性 48
2.10.4 字符串的基本操作 48
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.4 位運算符 58
3.5 擴展後的賦值運算符 61
3.6 範圍運算符 61
3.6.1 閉範圍運算符 61
3.6.2 半開範圍運算符 61
3.7 比較運算符 62
3.8 邏輯運算符 63
3.8.1 Swift的3個邏輯運算符 63
3.8.2 組閤邏輯與括號 63
3.9 三目運算符 64
3.10 nil閤並運算符 65
3.11 運算符的結閤性和優先級 66
3.12 本章小結 67
第4章 流程控製 68
4.1 順序結構 69
4.2 分支結構 69
4.2.1 if條件語句 69
4.2.2 switch分支語句 72
4.2.3 switch不存在隱式貫穿(fallthrough)和顯式貫穿 73
4.2.4 使用break結束switch 74
4.2.5 switch的範圍匹配 75
4.2.6 switch的元組匹配 75
4.2.7 case的值綁定 77
4.2.8 case的where子句 78
4.3 循環結構 79
4.3.1 while循環語句 79
4.3.2 repeat while循環語句 80
4.3.3 for循環 81
4.3.4 for-in循環 83
4.3.5 嵌套循環 83
4.4 控製循環結構 84
4.4.1 使用break結束循環 84
4.4.2 使用continue忽略本次循環的剩下語句 85
4.4.3 使用return結束方法 86
4.5 Swift 2新增的guard語句 87
4.6 Swift 2新增的API檢查 88
4.7 條件編譯 89
4.8 本章小結 90
第5章 集閤 91
5.1 數組 92
5.1.1 聲明和創建數組 92
5.1.2 使用數組 93
5.1.3 使用for-in遍曆數組 95
5.1.4 數組的可變性和數組的修改 95
5.1.5 多維數組 98
5.1.6 數組的應用舉例 101
5.2 Set集閤 102
5.2.1 聲明和創建Set 102
5.2.2 使用Set 103
5.2.3 使用for-in遍曆Set 104
5.2.4 Set的可變性和Set的修改 104
5.2.5 Set集閤元素與hashValue 106
5.2.6 Set支持的集閤運算 106
5.2.7 Set集閤的關係運算 107
5.3 字典 108
5.3.1 聲明和創建字典 109
5.3.2 使用字典 110
5.3.3 使用for-in遍曆字典 111
5.3.4 單獨使用字典的keys或values 111
5.3.5 字典的可變性和字典的修改 112
5.3.6 字典的應用舉例 113
5.4 集閤的復製 114
5.4.1 數組與Set的復製 114
5.4.2 字典的復製 116
5.5 本章小結 117
第6章 函數和閉包 118
6.1 函數入門 119
6.1.1 定義和調用函數 119
6.1.2 函數返迴值 120
6.1.3 遞歸函數 122
6.2 函數的形參 123
6.2.1 外部形參名 123
6.2.2 形參默認值 124
6.2.3 個數可變的形參 125
6.2.4 常量形參和變量形參 126
6.2.5 In-Out形參 126
6.3 函數類型 130
6.3.1 使用函數類型 130
6.3.2 使用函數類型作為形參類型 131
6.3.3 使用函數類型作為返迴值類型 133
6.4 函數重載 133
6.5 嵌套函數 135
6.6 嵌套函數與閉包 137
6.6.1 迴顧嵌套函數 137
6.6.2 使用閉包錶達式代替嵌套函數 137
6.6.3 閉包的escape 138
6.7 閉包錶達式 139
6.7.1 調用閉包(使用閉包返迴值) 139
6.7.2 利用上下文推斷類型 140
6.7.3 省略return 141
6.7.4 省略形參名 141
6.7.5 尾隨閉包 142
6.8 捕獲上下文中的變量和常量 143
6.9 閉包是引用類型 144
6.10 自動閉包 145
6.11 本章小結 146
第7章 麵嚮對象編程(上) 147
7.1 Swift的麵嚮對象支持 148
7.1.1 麵嚮對象概述 148
7.1.2 Swift的麵嚮對象類型 148
7.2 枚舉 149
7.2.1 定義枚舉 149
7.2.2 枚舉值和switch語句 151
7.2.3 原始值 152
7.2.4 關聯值 153
7.2.5 遞歸枚舉 155
7.3 類和結構體 156
7.3.1 定義結構體和類 156
7.3.2 創建實例 160
7.3.3 值類型與引用類型 161
7.3.4 引用類型的比較 163
7.3.5 self關鍵字 165
7.3.6 類和結構體的選擇 167
7.4 存儲屬性 167
7.4.1 實例存儲屬性與實例變量 167
7.4.2 結構體常量與實例屬性 169
7.4.3 延遲存儲屬性 169
7.5 計算屬性 170
7.5.1 定義計算屬性 170
7.5.2 set部分的簡化 172
7.5.3 隻讀的計算屬性 173
7.6 屬性觀察者 173
7.7 方法 175
7.7.1 方法的所屬性 176
7.7.2 將方法轉換為函數 176
7.7.3 方法的外部形參名 177
7.7.4 Swift方法的命名習慣 179
7.7.5 值類型的可變方法 180
7.7.6 屬性和方法的統一 182
7.8 下標 183
7.8.1 下標的基本用法 183
7.8.2 下標重載 185
7.9 可選鏈 187
7.9.1 使用可選鏈代替強製解析 187
7.9.2 使用可選鏈調用方法 189
7.9.3 使用可選鏈調用下標 190
7.10 類型屬性和類型方法 190
7.10.1 類型成員的修飾符 191
7.10.2 值類型的類型屬性 191
7.10.3 類的類型屬性 192
7.10.4 值類型的類型方法 193
7.10.5 類的類型方法 194
7.11 錯誤處理 194
7.11.1 拋齣錯誤 195
7.11.2 聲明拋齣錯誤 195
7.11.3 使用do-catch捕捉錯誤 196
7.11.4 將錯誤轉為可選值 197
7.11.5 使錯誤失效 198
7.11.6 使用defer迴收資源 199
7.12 構造器 200
7.12.1 類和結構體的構造器 200
7.12.2 構造器的外部形參名 201
7.12.3 使用閉包或函數為屬性設置初始值 203
7.12.4 值類型的構造器重載 204
7.13 可能失敗的構造器 205
7.13.1 結構體與可能失敗的構造器 206
7.13.2 枚舉與可能失敗的構造器 207
7.14 本章小結 208
第8章 麵嚮對象編程(下) 209
8.1 繼承 210
8.1.1 繼承的特點 210
8.1.2 重寫父類的方法 211
8.1.3 重寫父類的屬性 212
8.1.4 重寫屬性觀察者 214
8.1.5 重寫父類的下標 214
8.1.6 使用final防止重寫 215
8.2 類的構造與析構 217
8.2.1 類的指定構造器和便利構造器 217
8.2.2 類的構造器鏈 218
8.2.3 兩段式構造 220
8.2.4 構造器的繼承和重寫 223
8.2.5 類與可能失敗的構造器 226
8.2.6 可能失敗的構造器的傳播 227
8.2.7 重寫可能失敗的構造器 228
8.2.8 子類必須包含的構造器 230
8.2.9 析構器 231
8.3 多態 232
8.3.1 多態性 232
8.3.2 使用is運算符檢查類型 233
8.3.3 使用as運算符嚮下轉型 234
8.3.4 Any和AnyObject 236
8.4 嵌套類型 237
8.5 擴展 238
8.5.1 使用擴展添加屬性 239
8.5.2 使用擴展添加方法 240
8.5.3 使用擴展添加可變方法 241
8.5.4 使用擴展添加構造器 241
8.5.5 使用擴展添加下標 242
8.5.6 使用擴展添加嵌套類型 242
8.6 協議 243
8.6.1 規範、接口與協議語法 243
8.6.2 協議指定的屬性要求 244
8.6.3 協議指定的方法要求 248
8.6.4 協議指定的可變方法要求 249
8.6.5 協議指定的下標要求 251
8.6.6 協議指定的構造器要求 252
8.6.7 使用協議作為類型 254
8.6.8 閤成協議 255
8.6.9 通過擴展為已有的類型添加協議 256
8.6.10 唯類(Class-Only)協議 257
8.6.11 可選協議 258
8.6.12 協議擴展 260
8.6.13 輸齣實例和CustomStringConvertible協議 262
8.6.14 使用自定義類型作為字典的key 263
8.7 隱藏與封裝 266
8.7.1 理解封裝 266
8.7.2 訪問控製符 266
8.7.3 訪問控製語法 268
8.7.4 使用訪問權限定義類型 269
8.7.5 子類的訪問權限 270
8.7.6 常量、變量、屬性、下標的訪問權限 271
8.7.7 構造器的訪問權限 272
8.7.8 協議的訪問權限 273
8.7.9 擴展的訪問權限 273
8.7.10 類型彆名的訪問權限 273
8.8 Swift內存管理 273
8.8.1 理解自動引用計數(ARC) 274
8.8.2 強引用循環 276
8.8.3 使用弱引用解決強引用循環 278
8.8.4 使用無主引用解決強引用循環 279
8.8.5 閉包與對象的強引用循環 281
8.8.6 使用弱引用或無主引用解決閉包的強引用循環 282
8.9 Swift麵嚮對象語法總結 283
8.10 本章小結 284
第9章 泛型 285
9.1 泛型的作用 286
9.2 泛型函數 287
9.2.1 定義泛型函數 287
9.2.2 定義多個類型參數 288
9.3 泛型類型 290
9.3.1 定義泛型類型 290
9.3.2 從泛型類派生子類 291
9.3.3 擴展泛型類型 292
9.4 類型約束 292
9.5 關聯類型 295
9.5.1 使用關聯類型 295
9.5.2 擴展已有類型來確定關聯類型 297
9.6 where子句 297
9.6.1 泛型聲明的where子句 297
9.6.2 協議擴展的where子句 298
9.7 本章小結 299
第10章 運算符函數 300
10.1 運算符重載 301
10.2 前置和後置運算符 303
10.3 擴展後的賦值運算符 305
10.4 比較運算符 305
10.5 自定義運算符 307
10.5.1 開發自定義運算符 307
10.5.2 自定義運算符的結閤性和優先級 308
10.6 本章小結 309
第11章 Foundation框架詳解 310
11.1 包裝類 311
11.1.1 它們不是包裝類 311
11.1.2 NSValue和NSNumber 312
11.2 字符串(NSString與NSMutableString) 313
11.2.1 NSString的常用功能 313
11.2.2 可變字符串(NSMutableString) 315
11.3 日期與時間 316
11.3.1 日期與時間(NSDate) 316
11.3.2 日期格式器(NSDateFormatter) 317
11.3.3 日曆(NSCalendar)與日期組件(NSDateComponents) 319
11.4 數組(NSArray與NSMutableArray) 320
11.4.1 NSArray的功能與用法 320
11.4.2 對集閤元素整體調用方法 322
11.4.3 對NSArray進行排序 324
11.4.4 使用枚舉器遍曆NSArray集閤元素 324
11.4.5 可變數組(NSMutableArray) 325
11.5 集閤(NSSet與NSMutableSet) 327
11.5.1 NSSet的功能與用法 327
11.5.2 NSMutableSet的功能與用法 330
11.5.3 NSCountedSet的功能與用法 331
11.6 有序集閤(NSOrderedSet與NSMutableOrderedSet) 332
11.7 字典(NSDictionary與NSMutableDictionary) 333
11.7.1 NSDictionary的功能與用法 334
11.7.2 對NSDictionary的key進行排序 336
11.7.3 對NSDictionary的key進行過濾 337
11.7.4 NSMutableDictionary的功能與用法 338
11.8 本章小結 339
第12章 使用Swift開發iOS應用 340
12.1 從iOS項目開始 341
12.1.1 iOS項目包含的文件 341
12.1.2 Interface Builder簡介 342
12.1.3 添加控件 344
12.1.4 修改控件屬性 345
12.1.5 UIView支持的屬性 347
12.1.6 UILabel支持的屬性 349
12.2 MVC 351
12.2.1 程序入口和應用程序代理 351
12.2.2 理解iOS的MVC 353
12.2.3 掌握UIViewController控製器 354
12.3 事件機製 356
12.3.1 程序獲取控件的兩種方式 356
12.3.2 事件處理的3種方式 362
12.4 代碼控製UI界麵 367
12.4.1 不使用界麵設計文件開發UI界麵 367
12.4.2 使用代碼創建UI界麵 369
12.4.3 自定義UI控件 371
12.5 本章小結 374
第13章 Objective-C與Swift混編 375
13.1 Swift調用Objective-C 376
13.1.1 創建Swift項目 376
13.1.2 添加Objective-C類 376
13.1.3 調用Objective-C類 379
13.2 Objective-C調用Swift 380
13.2.1 為Objective-C項目添加Swift類 381
13.2.2 調用Swift類 382
13.3 本章小結 384
第14章 俄羅斯方塊 385
14.1 俄羅斯方塊簡介 386
14.2 開發遊戲界麵 387
14.2.1 界麵布局設計 387
14.2.2 開發遊戲界麵控件 390
14.3 俄羅斯方塊的數據模型 391
14.3.1 定義數據模型 392
14.3.2 初始化遊戲狀態數據 393
14.4 實現遊戲邏輯 395
14.4.1 處理方塊掉落 396
14.4.2 處理方塊左移 400
14.4.3 處理方塊右移 401
14.4.4 處理方塊鏇轉 402
14.4.5 啓動遊戲 404
14.5 本章小結 405

前言/序言

  Swift正逐步占領iOS App實際開發的市場份額,Swift 的簡潔、易用性已經吸引瞭大量開發者,大傢已開始或準備開始使用Swift開發iOS App。Apple在WWDC2015上再次發布瞭Swift 2.0版本,既嚮開發者宣示瞭Apple對Swift的支持決心,也進一步增強瞭Swift的功能,使得Swift真正成為一門強大的開發語言。


  Swift的最大特點是簡潔,它從JavaScript、Go等現代語言中學習瞭不少內容,從而讓Swift具有非常簡潔的編程體驗,十分接近程序員的習慣。而且Swift能很好地兼容Objective-C已有的框架和庫,因此Swift與Objective-C完全可以進行混閤編程。此外,Swift語言還有已經十分成熟的Cocoa、Cocoa Touch框架的支持,更加可靠!


  需要說明的是,Swift雖然提供瞭簡潔的語法,但Swift的功能並不簡單,絕對是一門具有工業品質的強大語言。Swift既支持函數式的編程方式,也支持麵嚮對象的編程方式。Swift的函數式編程方式完全支持主流的函數和閉包,傳參方式既支持值傳遞方式,也支持引用傳遞方式,還支持多返迴值的函數,語法功能非常豐富;在麵嚮對象的支持方麵,Swift完全支持麵嚮對象的封裝、繼承、多態等基本功能,而且Swift提供瞭枚舉、結構體和類三種麵嚮對象的類型,這三種類型都可創建實例、調用方法,而且都允許定義屬性、方法、構造器、下標和嵌套類型,語法功能非常豐富。如果真正全麵掌握瞭Swift的所有功能,就會發現Swift雖然是一門簡潔的編程語言,但它也是一門功能非常強大的語言。


  本書是《瘋狂Swift講義》的第2版,真正基於OS X 10.11平颱,采用Xcode 7.1作為開發工具。Swift 2.x與Swift 1.x相比變化非常大:簡單的改變如拋棄瞭原有的println輸齣函數,改為使用print輸齣函數,String不再遵守CollectionType協議等;重大的更新包括repeat while循環、guard語句、API檢查、條件編譯、Set集閤、錯誤處理機製、協議擴展等內容。這些內容都是本書重點介紹的知識。


  最後本書提醒讀者,Swift雖然是一門簡潔、優雅的編程語言,但它絕非一門簡單的toy語言。因此希望廣大開發者在開始學習Swift之前做好心理準備:Swift是一門功能強大的工業語言,因此它的語法功能非常豐富。本書作為“瘋狂體係”Swift學習圖書,當然不是僅提供淺嘗輒止的入門語法,而是真正全麵、細緻地介紹瞭Swift語言的各種功能,100%完整覆蓋瞭Apple官方的“The Swift Programming Language”編程指南,而且大部分語法功能都從正反兩麵舉例,務求讓讀者能舉一反三地真正掌握Swift編程。


  本書有什麼特點


  正如前麵所介紹的,本書並不是一本簡單的Swift入門教材,而是一本全麵而完整的Swift編程手冊,不僅100%完整覆蓋瞭Apple官方的“The Swift Programming Language”編程指南,而且示例更加豐富,行文更加通俗易懂,更符閤中國人的學習習慣。這一點,一直都是“瘋狂體係”圖書的風格。


  本書內容大緻可分為4部分:


  第1部分:由第1章組成,這部分簡要介紹瞭Swift語言的相關背景,主要介紹瞭如何搭建Swift的開發環境,包括Playground的功能和用法,重點介紹瞭如何在終端窗口編譯、運行Swift程序。


  第2部分:由第2~ 6章組成,主要介紹瞭Swift的基礎語法和函數式編程支持,也介紹瞭Swift的String、Array、Set、Dictionary等內置類型。


  第3部分:由第7~11章組成,主要介紹瞭Swift的麵嚮對象編程支持,並介紹瞭使用Swift調用Foundation框架的常用類。


  第4部分:由第12~14章組成,主要介紹瞭如何使用Swift開發iOS應用,詳細介紹瞭iOS項目的結構,並歸納瞭iOS應用的MVC設計,在代碼中獲取UI控件的兩種方式(必須先獲取UI控件,然後即可修改它來更新用戶界麵),iOS應用事件處理的三種方式。通過這種方式可以讓讀者快速掌握iOS編程的思路。第14章還介紹瞭一個iOS遊戲:俄羅斯方塊。


  本書不是一本看完之後可以“吹噓、炫耀”的書——因為本書並沒有堆砌一堆“深奧”的新名詞、一堆“高深”的思想;本書保持瞭“瘋狂體係”的一貫風格:操作步驟詳細、編程思路清晰、語言平實。隻要讀者想學習Swift編程,just do it——Swift雖不像網絡流傳的那麼簡單,但隻要認真閱讀此書,並準備動手“敲代碼”,完全可以真正掌握它。無須擔心沒有編程基礎(本書從最基礎的定義變量開始講起),也無須擔心沒有Apple電腦(網絡上使用普通電腦裝黑蘋果的文章鋪天蓋地)——隻要你有決心和毅力,就可以真正掌握Swift編程,進而掌握iOS應用開發。


  不管怎樣,隻要讀者在閱讀本書時遇到知識上的問題,都可以登錄瘋狂Java聯盟(http://www.crazyit.org)與廣大學習者交流,筆者也會通過該平颱與大傢一起交流、學習。


  本書還具有如下三個特點。


  1.版本成熟,語法穩定


  本書並非基於Swift測試版寫成,而是以OS X 10.11為平颱,基於Xcode 7.1開發工具,采用穩定的Swift 2.1正式版寫成,因此讀者閱讀此書時極少會發現書中知識已經過時或被拋棄的情形。


  2.知識全麵,覆蓋麵廣


  本書不像某些入門級的小冊子看上去那麼簡單,本書全麵而細緻地介紹瞭Swift編程的各種語法,不僅100%完整覆蓋Apple官方的“The Swift Programming Language”編程指南,而且示例更加豐富。


  3.注釋詳細,輕鬆上手


  為瞭降低讀者閱讀的難度,書中代碼的注釋非常詳細,幾乎每兩行代碼就有一行注釋。不僅如此,本書甚至還把一些簡單理論作為注釋穿插到代碼中,力求讓讀者能輕鬆上手。


  本書所有程序中的關鍵代碼均以粗體字標齣,也是為瞭幫助讀者能迅速找到這些程序的關鍵點。


  本書寫給誰看


  本書為所有打算深入掌握Swift編程的讀者而編寫,適閤各個層次的Swift學習者和開發者閱讀,也適閤作為大學教育、培訓機構的Swift教材。


  李剛


  2015年12月27日


《瘋狂Swift講義(第2版)》是一本麵嚮廣大Swift開發者的深度技術教程,旨在為讀者構建紮實的Swift語言基礎,並引導他們掌握Swift在實際開發中的高級應用。本書並非停留在語法層麵的簡單羅列,而是著重於理解Swift語言的設計哲學、核心機製以及最佳實踐,幫助開發者寫齣更優雅、更高效、更健壯的代碼。 內容概述 本書涵蓋瞭Swift語言的方方麵麵,從基礎概念的梳理,到高級特性的深入剖析,再到實際應用場景的探討,力求為讀者提供一個全麵且係統的學習路徑。 第一部分:Swift語言基礎與核心概念 本部分將帶領讀者重新審視Swift語言的基石。我們會從最基本的變量、常量、數據類型講起,但重點不會停留於此。更重要的是,我們會深入講解Swift的類型係統,包括值類型(Structs and Enums)與引用類型(Classes)的區彆與聯係,它們在內存管理、性能影響以及並發場景下的不同錶現。特彆會強調Swift中結構體和枚舉的強大之處,以及它們在現代Swift開發中的核心地位,遠超許多傳統麵嚮對象語言的類。 字符串和集閤類型(數組、字典、集閤)的常用操作和高效使用方法也將得到詳盡介紹。我們會探討不同集閤類型的內部實現原理,以及在不同場景下選擇最閤適集閤類型的依據,從而優化代碼性能。 控製流部分,除瞭基本的`if-else`、`switch`、循環語句,還會重點講解`guard-else`語句的使用,以及它如何使代碼更加清晰和易於維護。`switch`語句的模式匹配(Pattern Matching)功能是Swift的一大亮點,本書將通過豐富的實例展示其強大的錶達能力,包括值綁定、範圍匹配、類型轉換等。 函數是Swift編程的核心。我們將從函數聲明、參數傳遞、返迴值類型開始,逐步深入到函數類型、閉包(Closures)。閉包是Swift中一個極其重要的概念,本書將詳細解析閉包的捕獲值、尾隨閉包(Trailing Closures)語法,以及在異步編程、迴調函數等場景下的廣泛應用。同時,會重點講解逃逸閉包(Escaping Closures)和非逃逸閉包(Non-Escaping Closures)的區彆和使用場景,以及`@autoclosure`等高級特性。 第二部分:Swift的麵嚮對象與協議導嚮編程 Swift的麵嚮對象特性是其強大之處的體現。本書將係統講解類的繼承、屬性(存儲屬性、計算屬性、類型屬性、屬性觀察器)、方法(實例方法、類型方法、重寫方法)、初始化器(Convenience Initializers, Designated Initializers, Failable Initializers)以及析構器。我們會深入分析對象生命周期管理,特彆是ARC(Automatic Reference Counting)機製的工作原理,以及如何避免循環引用(Strong Reference Cycles)等內存管理難題,並介紹弱引用(Weak References)和無主引用(Unowned References)的使用。 然而,Swift的編程範式遠不止於麵嚮對象,協議導嚮編程(Protocol-Oriented Programming, POP)纔是Swift的精髓所在。本書將用大量篇幅講解協議的定義、協議的遵循、協議作為類型使用,以及關聯類型(Associated Types)的強大威力。我們將深入探討如何通過組閤協議來擴展類型的功能,如何使用協議的默認實現(Default Implementations)來提供通用的行為,以及如何利用協議來實現解耦和多態。本書會著重強調POP如何幫助我們編寫更具靈活性、可測試性和可維護性的代碼,以及它與傳統麵嚮對象編程的區彆和互補之處。 泛型(Generics)是Swift語言實現代碼復用和類型安全的重要機製。本書將詳細講解泛型函數、泛型類型(類、結構體、枚舉)的定義與使用,以及泛型約束(Type Constraints)。通過理解泛型,開發者可以編寫齣能夠處理多種數據類型的通用代碼,極大地提高開發效率和代碼的健壯性。 第三部分:Swift的高級特性與並發編程 隨著Swift語言的不斷發展,其高級特性也日益豐富。本書將深入探討: 錯誤處理(Error Handling):Swift的錯誤處理機製,包括`throw`、`catch`、`do-try-catch`語法,以及`Error`協議、`throwing`函數。我們會講解如何定義自定義錯誤類型,如何優雅地處理潛在的錯誤,以及`try?`和`try!`的適用場景。 模式匹配(Pattern Matching):除瞭在`switch`語句中的應用,還會講解模式匹配在`if case`、`guard case`、`for-in`循環以及變量聲明中的高級用法,幫助開發者編寫更簡潔、更強大的代碼。 訪問控製(Access Control):理解Swift的訪問級彆(`open`, `public`, `internal`, `fileprivate`, `private`)對於構建大型、健壯的應用程序至關重要。本書將詳細解釋每個訪問級彆的含義及其應用場景,指導讀者如何閤理地組織代碼結構,保護內部實現細節。 屬性包裝器(Property Wrappers):這是一個非常強大的Swift特性,允許開發者將常用邏輯封裝起來,方便地應用於多個屬性。本書將通過實際例子,如數據持久化、驗證、數據轉換等,展示屬性包裝器的靈活性和實用性。 Combine框架:本書將引入Apple官方的響應式編程框架Combine。我們將從基本概念(Publisher, Subscriber, Operator)講起,逐步深入到其核心機製,並通過豐富的實際案例,講解如何在SwiftUI、AppKit、UIKit等項目中應用Combine進行異步事件流的管理,實現更流暢、更具響應性的用戶體驗。 Swift Concurrency(Swift協程/並發):隨著Swift 5.5的推齣,Swift引入瞭更現代、更安全的並發編程模型,包括`async/await`、`Actors`和`Task`。本書將詳細解讀這些新特性,講解如何使用`async/await`簡化異步代碼,如何利用Actors來安全地管理共享狀態,以及如何使用`Task`來組織並發操作。我們會重點對比傳統GCD(Grand Central Dispatch)和Swift Concurrency的優劣,並指導讀者如何在新項目中實踐這些現代並發模式。 第四部分:Swift在實際開發中的應用與最佳實踐 理論知識需要與實踐相結閤。本部分將把前麵學到的Swift知識應用於實際開發場景: 協議擴展與組閤:如何利用協議擴展提供默認實現,以及如何通過組閤多個協議來構建靈活的API。 代碼組織與設計模式:探討常見的Swift代碼組織方式,以及在Swift中實現和應用常見設計模式(如MVVM, MVC, Delegate, Observer等)的技巧。 單元測試與快照測試:講解如何為Swift代碼編寫高質量的單元測試,以及如何使用Xcode的快照測試來驗證UI的一緻性。 類型擦除(Type Erasure):介紹類型擦除的概念及其在Swift中的實現方式,幫助開發者處理泛型在某些場景下的限製。 與Objective-C的互操作性:對於需要維護混閤語言項目的開發者,本書將提供與Objective-C進行互操作的詳細指導。 本書特色 深度解析:本書不滿足於“做什麼”,更側重於“為什麼”和“怎麼做”。深入剖析Swift語言的底層機製,幫助讀者建立對語言的深刻理解。 實例驅動:每一個概念都配以精心設計的、可運行的代碼示例,讓讀者能夠邊學邊練,快速掌握。 實戰導嚮:從基礎到高級,始終圍繞實際開發需求,解決開發者在項目中遇到的痛點。 前沿技術:涵蓋Swift語言最新的特性,特彆是Combine和Swift Concurrency,幫助讀者跟上技術發展的步伐。 循序漸進:從易到難,結構清晰,適閤不同水平的Swift開發者閱讀。 目標讀者 希望係統學習Swift語言,打下堅實基礎的初學者。 有一定Swift開發經驗,希望深入理解語言特性,提升代碼質量的開發者。 對Swift語言的高級特性(如POP, Combine, Swift Concurrency)感興趣,並希望將其應用於實際項目的開發者。 正在進行iOS、macOS、watchOS、tvOS等Apple平颱開發的工程師。 《瘋狂Swift講義(第2版)》將是你踏上Swift開發精進之路的可靠夥伴,助你成為一名更加齣色的Swift開發者。

用户评价

评分

這本書的齣版,對我這個正準備轉行iOS開發的職場新人來說,簡直是雪中送炭!我之前嘗試過幾個零散的在綫課程,感覺像是大海撈針,不知道從何下手,也抓不住重點。《瘋狂Swift講義(第2版)》的齣現,讓我看到瞭希望。我特彆喜歡它那種“講得透徹,練得紮實”的學習路徑。它不像有些書隻是簡單地羅列API,而是會深入講解每個API背後的原理和設計思想,讓你知其然更知其所以然。而且,書裏的練習題設計得非常巧妙,很多都是能直接遷移到實際項目中的場景,做完之後,那種成就感是無與倫比的。我堅信,通過這本書的學習,我能夠係統地掌握Swift語言的核心技能,並且能夠開始獨立構建一些小型應用。目前我最關注的是書裏會不會涉及到一些關於並發編程和多綫程的內容,這對於開發高性能的iOS應用來說至關重要。如果能有對ARC(自動引用計數)更深入的解析,以及內存管理的最佳實踐,那就更完美瞭。

评分

作為一個已經有幾年iOS開發經驗的開發者,我一直在尋找能夠幫助我突破瓶頸、提升技術深度的進階讀物。《瘋狂Swift講義(第2版)》正是我想尋找的那種書。第一版的時候我就受益匪淺,它幫助我鞏固瞭基礎,並且讓我對Swift的很多特性有瞭更深刻的認識。現在,隨著Swift語言的不斷發展,我迫切需要一本能夠涵蓋最新技術和最佳實踐的書籍。我特彆關注這本書是否會在第一版的基礎上,對Swift的泛型、協議擴展、以及函數式編程等方麵進行更深入的探討。這些都是提升代碼質量和可維護性的關鍵。另外,如果書中能分享一些關於性能優化的技巧,比如如何利用Instruments進行性能分析,以及一些內存泄漏的排查方法,那對我來說將是巨大的價值。我很期待它能提供一些高級的架構設計模式的講解,例如MVVM、Clean Architecture等,並結閤Swift的特性進行說明。

评分

我是一位對編程充滿熱情,但接觸Swift時間不長的學習者。朋友推薦瞭《瘋狂Swift講義(第2版)》,我抱著試一試的心態翻開瞭它,結果驚為天人!作者的語言風格太親切瞭,完全沒有那種高高在上的感覺,就像一位耐心的大哥哥在教你。而且,這本書的結構安排得非常閤理,從最基礎的語法,到常用的數據結構,再到麵嚮對象和協議導嚮的編程思想,一步一個腳印,非常適閤我這種“小白”。最讓我感到驚喜的是,書中穿插瞭很多生動形象的比喻和類比,把一些抽象的概念解釋得通俗易懂。我尤其想知道,這本書在講解Objective-C和Swift的互操作性方麵,會有多少篇幅?畢竟,很多老項目還需要維護,瞭解這方麵的知識對我的學習非常有幫助。我還希望它能對Swift Package Manager(SPM)有所介紹,學習如何更方便地管理項目依賴。

评分

作為一名在校學生,我正在學習iOS開發相關的課程,而《瘋狂Swift講義(第2版)》正好滿足瞭我對係統性學習的需求。學校的課程雖然涵蓋瞭基礎知識,但往往在實踐和深度上有所欠缺。這本書的齣現,彌補瞭這一遺憾。我特彆看重它在代碼示例上的詳實程度,相信通過大量的實踐,我能夠更好地理解和掌握Swift的各種語法特性和編程範式。我非常期待書中能有關於SwiftUI的深入講解,畢竟這是蘋果未來的UI開發趨勢,掌握它對我們未來的職業發展至關重要。此外,如果能有一些關於單元測試和UI測試的內容,指導我們如何編寫可測試的代碼,以及如何利用Xcode進行有效的測試,那就更好瞭。我希望這本書能夠幫助我建立起紮實的編程基礎,並且能夠讓我獨立完成一些小型的iOS應用程序項目,為未來的實習和就業打下堅實的基礎。

评分

終於等到《瘋狂Swift講義(第2版)》瞭!我可是這本書的忠實粉絲,第一版的時候就因為它的講解風格徹底愛上瞭Swift編程。當時剛接觸iOS開發,市麵上很多教程要麼過於理論化,要麼又太碎片化,看得我雲裏霧裏。直到遇到瞭《瘋狂Swift講義》,那種由淺入深、層層遞進的講解方式,簡直是為我量身定做的。書中的每一個概念都剖析得非常透徹,並且配有大量的代碼示例,讓我能夠邊學邊練,迅速建立起對Swift語言的理解。而且,作者的語言風格幽默風趣,一點也不枯燥,讀起來就像是在跟一位經驗豐富的老師在交流,不知不覺中就把復雜的知識點給消化瞭。這次的第2版,我毫不猶豫地就入手瞭,相信它一定能帶給我更多驚喜,繼續引領我深入Swift的奇妙世界。我非常期待它在第一版的基礎上,能夠對Swift的最新特性進行更新和補充,比如SwiftUI方麵的進階內容,或者是一些更貼近實際項目開發的高級技巧。畢竟,技術更新迭代很快,一本跟得上時代的好書是多麼重要啊!

评分

时下,吾已浪迹京东数年,但觉世风日下,深知各店之猫腻甚多,不乏其闻。然,唯此宝物与众皆不同,为出淤泥之清莲。使吾为之动容,心驰神往。乃至饭不能食,寝则不安,辗转反侧无法忘怀。于是乎紧衣缩食,凑齐银两,倾吾所能而买。客服之热心与小二之殷切让人感染,感激怜涕。打开包裹之时,顿时金光四射,屋内升起七彩祥云,处处都是祥和之气。吾惊讶之余便是欣喜若狂,呜呼哀哉!此宝乃是天上物的,人间又得几回求!遂沐浴更衣,焚香告后与家人共赏此宝。夫则赞叹不已,不仅赞叹此宝物款型及做工,超高性价比!且赞吾独具慧眼与时尚品位,更予唇相赠。京东果然句句实言,毫无夸大欺瞒之嫌。此属大家风范,忠义之商贾,更无愧于皇冠之衔。吾不敢独享此宝,唯恐天谴。便有感而出此文,句句真言,字字肺腑。嗟!望京东江湖所需此宝之英雄志士无需货比三家,谨记唯此宝为首选也 !

评分

想买疯狂讲义系列很久了,这次京东做活动,优惠力度很大,立马就下单了。正版书籍,附带光盘。现在每天看看学学编程。

评分

书的质量很好,很满意

评分

还没看,android还没开始学。书先备好。

评分

┃ 宠 ┃

评分

程序员伤不起啦,每次都要买这么多工具书,都是好厚的,看不看就看心情啦

评分

那些年夏季新款新款开心你的那些年新款新款

评分

挺厚的一本书,简单易懂,适合初学者。附带有教学光碟,有助于理解。

评分

闭门造车,学成无敌……,为了兴趣,为了热爱,为了变得更加优秀加油吧

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有