編輯推薦
★完全針對初學者,既適閤接觸過其他編程語言的有經驗程序員,也適閤有足夠學習欲望的新手。
★包含大量屏幕截圖和示例代碼,讓初學者全麵瞭解Swift和Xcode工具集。
★基於概念和交互式環境快速紮實掌握蘋果開發技能,真正學會開發完整App。
內容簡介
本書針對初學者,從變量、類型、函數、閉包等基本概念入手,結閤Swift 示例,一步步指導讀者使用Swift 開發App。給齣瞭一個App 開發全流程。
本書適閤任何想學習Swift 的人員參考。
作者簡介
Boisy G. Pitre 傑齣蘋果開發專傢,曾任Siri語音識彆技術提供方Nuance公司Mac産品小組的傑齣軟件工程師,參與開發瞭語音識彆軟件Dragon Dictate。MacTech雜誌“Developer to Developer”月度專欄作傢,曾多次在MacTech和CocoaConf等會議上發錶技術演講。現任情緒識彆公司Affectiva的移動遠景規劃師,領導團隊緻力於將公司的錶情分析技術遷移到移動平颱。
目錄
第一部分 基礎知識
第1章 Swift簡介 2
1.1 革命性的改良 2
1.2 準備工作 3
1.2.1 專業工具 3
1.2.2 與Swift交互 3
1.3 準備齣發 4
1.4 開始探索Swift 6
1.4.1 幫助和退齣 6
1.4.2 Hello World 7
1.5 聲明的威力 7
1.6 常量 9
1.7 類型 10
1.7.1 檢查上限和下限 11
1.7.2 類型轉換 11
1.7.3 顯式地聲明類型 13
1.8 字符串 13
1.8.1 字符串拼接 14
1.8.2 Character類型 14
1.9 數學運算符 15
1.9.1 錶達式 15
1.9.2 混用不同的數值類型 16
1.9.3 數值錶示 16
1.10 布爾類型 17
1.11 輕鬆顯示 18
1.12 使用類型彆名 19
1.13 使用元組將數據編組 20
1.14 可選類型 21
1.15 小結 22
第2章 使用集閤 23
2.1 糖果罐 23
2.1.1 數組中所有元素的類型都必須相同 26
2.1.2 增長數組 26
2.1.3 替換和刪除值 27
2.1.4 將值插入到指定位置 28
2.1.5 閤並數組 29
2.2 字典 30
2.2.1 查找條目 31
2.2.2 添加條目 32
2.2.3 更新條目 33
2.2.4 刪除條目 33
2.3 數組的數組 34
2.4 創建空數組和空字典 36
2.4.1 空數組 36
2.4.2 空字典 37
2.5 迭代集閤 37
2.5.1 迭代數組 38
2.5.2 迭代字典 39
2.6 小結 40
第3章 流程控製 41
3.1 for 循環 41
3.1.1 計數 41
3.1.2 包含還是不包含結束數字 42
3.1.3 老式for循環 43
3.1.4 簡寫 44
3.2 遊樂場 45
3.3 決策 48
3.3.1 if語句 49
3.3.2 檢查多個條件 52
3.3.3 switch語句 53
3.3.4 while循環 57
3.3.5 檢查代碼 59
3.3.6 提早結束循環 62
3.4 小結 62
第4章 編寫函數和閉包 63
4.1 函數 63
4.1.1 使用Swift編寫函數 64
4.1.2 執行函數 65
4.1.3 參數並非隻能是數字 66
4.1.4 可變參數 67
4.1.5 函數是一級對象 70
4.1.6 從函數返迴函數 71
4.1.7 嵌套函數 74
4.1.8 默認參數 76
4.1.9 函數名包含哪些內容 77
4.1.10 清晰程度 78
4.1.11 用不用參數名 79
4.1.12 變量參數 79
4.1.13 inout參數 81
4.2 閉包 82
4.3 小結 84
4.4 類 84
第5章 使用類和結構組織代碼 85
5.1 對象無處不在 85
5.2 Swift對象是使用類定義的 86
5.2.1 定義類 86
5.2.2 創建對象 88
5.2.3 開門和關門 88
5.2.4 鎖門和開鎖 89
5.2.5 查看屬性 92
5.2.6 門應是各式各樣的 92
5.2.7 修改顔色 94
5.3 繼承 95
5.3.1 創建基類 96
5.3.2 創建子類 98
5.3.3 實例化子類 100
5.3.4 便利初始化方法 104
5.4 枚舉 106
5.5 結構 109
5.6 值類型和引用類型 110
5.7 小結 112
第6章 使用協議和擴展進行規範化 113
6.1 遵循協議 113
6.1.1 類還是協議 113
6.1.2 協議並非隻能定義方法 115
6.1.3 遵循多個協議 117
6.1.4 協議也可繼承 118
6.1.5 委托 119
6.2 擴展 122
6.2.1 擴展基本類型 123
6.2.2 在擴展中使用閉包 127
6.3 小結 129
第二部分 使用Swift開發軟件
第7章 使用Xcode 132
7.1 Xcode簡史 132
7.2 創建第一個Swift項目 133
7.3 Xcode界麵 135
7.3.1 與Xcode窗口交互 136
7.3.2 運行應用程序 138
7.4 開發應用程序 139
7.4.1 騰齣空間 139
7.4.2 創建界麵 141
7.4.3 美化 143
7.4.4 編寫代碼 145
7.4.5 建立連接 149
7.5 小結 151
第8章 改進應用程序 152
8.1 細節很重要 152
8.1.1 顯示金額 152
8.1.2 再談可選類型 154
8.1.3 可選類型拆封 155
8.1.4 美化 155
8.1.5 另一種格式設置方法 156
8.2 計算復利 160
8.2.1 連接起來 162
8.2.2 測試 165
8.3 調試 165
8.3.1 bug在哪裏 165
8.3.2 斷點 166
8.3.3 復雜的復利計算 169
8.4 測試的價值 170
8.4.1 單元測試 170
8.4.2 編寫測試 171
8.4.3 如果測試未通過 173
8.4.4 始終運行的測試 174
8.5 小結 175
第9章 Swift移動開發 176
9.1 移動設備和颱式機 176
9.2 挑戰記憶力 176
9.2.1 考慮玩法 177
9.2.2 設計UI 177
9.3 創建項目 178
9.4 創建用戶界麵 180
9.4.1 創建按鈕 181
9.4.2 在模擬器中運行 183
9.4.3 設置約束 184
9.5 MVC 187
9.6 編寫遊戲代碼 187
9.6.1 類 190
9.6.2 枚舉 191
9.6.3 視圖對象 191
9.6.4 模型對象 191
9.6.5 可重寫的方法 192
9.6.6 遊戲的方法 193
9.6.7 處理輸贏 196
9.7 迴到故事闆 198
9.8 開玩 200
第10章 成為專傢 201
10.1 Swift內存管理 201
10.1.1 值和引用 201
10.1.2 引用計數 202
10.1.3 引用循環 203
10.1.4 演示引用循環 203
10.1.5 編寫測試代碼 204
10.1.6 斷開引用循環 206
10.1.7 閉包中的引用循環 207
10.1.8 感恩 209
10.2 邏輯運算符 209
10.2.1 邏輯非 209
10.2.2 邏輯與 210
10.2.3 邏輯或 210
10.3 泛型 211
10.4 運算符重載 212
10.5 相等和相同 214
10.6 錯誤處理 216
10.6.1 引發錯誤 216
10.6.2 捕獲錯誤 217
10.7 Swift腳本編程 219
10.7.1 創建腳本 219
10.7.2 設置權限 221
10.7.3 執行腳本 221
10.7.4 工作原理 222
10.8 獲取幫助 223
10.9 小結 225
第11章 高山滑雪 226
11.1 遊戲開發技術 226
11.1.1 GameKit 226
11.1.2 SpriteKit 227
11.2 始於構思 227
11.2.1 高山滑雪 227
11.2.2 社交功能 227
11.3 齣發 227
11.3.1 怎麼玩 228
11.3.2 玩一玩 228
11.4 研究這個項目的組織結構 231
11.4.1 類 231
11.4.2 素材 232
11.4.3 場景 232
11.5 探索源代碼 232
11.5.1 場景Home 232
11.5.2 場景Game 235
11.5.3 遊戲視圖控製器 239
11.5.4 全麵瞭解 241
11.6 獨闖江湖 241
11.6.1 研究蘋果公司提供的框架 241
11.6.2 加入蘋果開發者計劃 242
11.6.3 成為社區的一分子 242
11.6.4 活到老學到老 242
11.6.5 一路平安 242
前言/序言
《Swift基礎教程 第2版》圖書簡介(原創) 一、 導讀:開啓您的Swift編程之旅 在數字時代浪潮中,移動應用開發已成為一股不可忽視的力量,而Swift,作為蘋果公司推齣的強大而富有錶現力的編程語言,正引領著iOS、macOS、watchOS和tvOS應用開發的未來。無論您是初次接觸編程的新手,還是希望掌握現代開發技能的資深開發者,這本書都將是您踏入Swift編程世界的理想起點。 《Swift基礎教程 第2版》是一本精心打磨的、麵嚮初學者的全麵性教程,旨在幫助讀者從零開始,逐步深入理解Swift語言的核心概念與實踐應用。本書秉承“由淺入深,循序漸進”的教學理念,力求以最清晰、最易懂的方式,帶領您掌握Swift的方方麵麵。我們深知學習新語言的挑戰,因此,本書的每一個章節都經過精心設計,既包含瞭理論知識的講解,也融入瞭大量的實際代碼示例和練習,讓您在動手實踐中鞏固所學,真正做到學以緻用。 二、 本書內容概覽:構建堅實的Swift知識體係 本書涵蓋瞭Swift語言學習的各個關鍵環節,從最基礎的語法特性,到麵嚮對象編程的思想,再到更高級的並發處理與錯誤管理,力求為讀者構建一個全麵而紮實的Swift知識體係。 第一部分:Swift語言基礎 初識Swift: 本部分將帶您走進Swift的世界,瞭解其發展曆程、在蘋果生態係統中的地位以及與其他編程語言的優勢對比。我們將幫助您搭建起第一個Swift開發環境,體驗“Hello, World!”的成就感,並初步認識Swift的簡潔高效。 變量、常量與數據類型: 任何編程語言都離不開數據的處理。在這裏,您將學習如何聲明和使用變量(`var`)與常量(`let`),理解Swift豐富的基本數據類型,如整型(`Int`)、浮點型(`Double`、`Float`)、布爾型(`Bool`)、字符串(`String`)以及字符(`Character`)。我們還會深入探討類型推斷的強大之處,讓您編寫更簡潔的代碼。 運算符與錶達式: 掌握運算符是進行數據運算和邏輯判斷的基礎。本書將詳細介紹算術運算符、比較運算符、邏輯運算符、賦值運算符、位運算符等,並教會您如何組閤它們構建復雜的錶達式,理解運算符的優先級和結閤性。 字符串與集閤類型: 字符串是承載文本信息的重要載體,Swift的字符串處理功能強大且易用。您將學習如何創建、訪問、修改字符串,以及常用的字符串操作。此外,本書還將詳細介紹Swift中的三大核心集閤類型:數組(`Array`)、字典(`Dictionary`)和集閤(`Set`),理解它們的特性、操作方法以及應用場景。 控製流語句: 控製流語句是指導程序執行順序的關鍵。您將學習如何使用條件語句(`if`、`else if`、`else`、`switch`)來控製程序的分支,以及如何使用循環語句(`for-in`、`while`、`repeat-while`)來重復執行代碼塊。我們會通過大量實例展示這些語句在實際開發中的應用。 函數: 函數是代碼的組織單元,能夠提高代碼的復用性和可讀性。本書將引導您學習如何定義函數,包括參數的傳遞、返迴值的接收,以及函數的調用。您還將瞭解默認參數值、外部參數名、可變參數等高級函數特性。 第二部分:麵嚮對象與麵嚮協議編程 結構體與類: Swift的強大之處在於其對結構體(`struct`)和類(`class`)的清晰區分與靈活運用。本部分將深入講解這兩者的定義、屬性、方法、初始化器,以及它們在內存管理上的差異。您將學會如何創建自定義的數據類型,並理解值類型與引用類型的區彆。 屬性: 屬性是類、結構體和枚舉中用於存儲值的成員。本書將詳細介紹存儲屬性、計算屬性、屬性觀察器(`willSet`、`didSet`)等,幫助您更好地管理和訪問對象的狀態。 方法: 方法是與特定類型相關聯的函數。您將學習實例方法、類型方法、以及方法修飾符的使用,理解它們在封裝行為和邏輯方麵的作用。 枚舉: 枚舉是定義一組相關值的強大方式。您將學習如何定義枚舉,關聯值(Associated Values)的用法,以及枚舉的原始值(Raw Values)和方法,用以更清晰地錶達狀態或一組特定的選項。 繼承: 繼承是麵嚮對象編程的重要特性,允許一個類繼承另一個類的屬性和方法。本書將講解類的繼承、方法重寫(Overriding)等概念,幫助您構建更具層次感和可擴展性的代碼結構。 初始化: 初始化是對象創建的關鍵過程。您將深入學習指定初始化器、便利初始化器、可選的鏈式初始化器(Chaining Initializers),以及如何處理值類型和引用類型的初始化。 協議: 協議是Swift中實現多態和代碼復用的核心機製。本書將引導您理解協議的定義、協議的遵循、協議的屬性和方法要求,以及協議的代理模式(Delegate Pattern)等。通過協議,您可以定義一係列方法的藍圖,讓不同的類型遵循並實現這些方法,從而實現代碼的解耦和靈活性。 擴展: 擴展(Extensions)允許您為現有類型添加新的功能,而無需修改其源代碼。您將學習如何為類、結構體、枚舉或協議添加計算屬性、方法、初始化器等,極大地增強瞭代碼的可維護性和靈活性。 第三部分:Swift進階特性與實踐 錯誤處理: 在實際開發中,錯誤是不可避免的。本書將教會您如何使用Swift的錯誤處理機製,包括`throws`、`try`、`catch`關鍵字,以及`Error`協議,讓您的程序能夠優雅地處理運行時可能齣現的異常情況。 泛型: 泛型是Swift中實現代碼復用的重要工具,它允許您編寫靈活且可重用的函數和類型,這些函數和類型可以處理任何類型,並且在編譯時就能保證類型安全。您將學習泛型函數、泛型類型以及泛型約束。 內存管理(ARC): 理解Swift的自動引用計數(ARC)機製對於編寫高效且無內存泄漏的應用程序至關重要。本書將詳細解釋ARC的工作原理,以及如何使用弱引用(`weak`)和無主引用(`unowned`)來打破循環引用。 閉包: 閉包是Swift中非常強大的特性,它們是自包含的代碼塊,可以在代碼中傳遞和使用。您將學習閉包的定義、捕獲值、尾隨閉包(Trailing Closures)以及逃逸閉包(Escaping Closures),並瞭解它們在函數式編程和異步編程中的重要作用。 訪問控製: 訪問控製允許您限製對代碼中某些元素的訪問。本書將介紹Swift的訪問級彆(`open`、`public`、`internal`、`fileprivate`、`private`),幫助您編寫更安全、更結構化的代碼。 並發編程基礎: 隨著多核處理器的普及,並發編程變得日益重要。本書將為您介紹Swift的並發模型,包括`async`/`await`語法,以及Actor模型,讓您能夠編寫能夠同時執行多個任務的代碼,提高程序的響應速度和效率。 三、 學習方法與本書特色 豐富的代碼示例: 本書提供瞭大量的、經過精心設計的代碼示例,覆蓋瞭Swift語言的每一個重要知識點。這些示例簡潔明瞭,易於理解和運行,是您學習過程中最直接的參考。 實用的練習題: 在每個章節的末尾,都設置瞭具有挑戰性且貼閤實際的練習題。這些練習題旨在鞏固您對所學知識的掌握,並鼓勵您將理論知識應用於解決實際問題。 循序漸進的結構: 本書的結構設計充分考慮瞭初學者的學習麯綫,從最基礎的語法開始,逐步深入到更高級的概念。每一章都建立在前一章的基礎上,確保您的學習過程是流暢而連貫的。 強調實踐: Swift是一門實踐性很強的語言。本書始終貫穿“學以緻用”的理念,通過大量的實踐環節,引導您將所學知識轉化為實際的編程能力。 通俗易懂的語言: 我們采用清晰、簡潔、易於理解的語言進行講解,避免使用過多晦澀的術語,確保即便是編程新手也能輕鬆上手。 四、 目標讀者 希望學習iOS、macOS、watchOS或tvOS應用開發的初學者。 對Swift語言感興趣,希望掌握現代編程技能的編程愛好者。 從其他編程語言轉型的開發者,希望快速掌握Swift。 需要係統學習Swift語言核心概念的計算機科學專業學生。 五、 結語 《Swift基礎教程 第2版》不僅僅是一本書,更是您Swift編程之旅的忠實夥伴。我們相信,通過本書的學習,您將能夠建立起堅實的Swift編程基礎,掌握解決實際問題的能力,並為未來更廣闊的移動開發天地打下堅實的基礎。現在,就讓我們一起,用Swift書寫您的精彩創意吧!
作為一名有著多年編程經驗的開發者,跨語言學習是傢常便飯,而Swift以其優雅的語法和強大的功能吸引瞭我。《Swift基礎教程 第2版》這本書的設計就充滿瞭專業感,厚度和排版都比較舒適,非常適閤長時間閱讀。我翻看瞭目錄,發現它不僅覆蓋瞭Swift的基礎語法,如變量、常量、數據類型、運算符、控製流、函數等,還深入到瞭更復雜的概念,如閉包、枚舉、結構體、類、屬性、方法、繼承、協議、泛型等。我特彆對書中關於“屬性包裝器”(Property Wrappers)的講解很感興趣,這是一種非常強大的語法糖,可以簡化很多重復性的代碼。我也希望書中能有關於Swift並發編程(Concurrency)的詳細介紹,比如async/await以及Actors模型,這對於開發高性能、響應式的應用程序至關重要。另外,書中對Swift語言特性演進的梳理,特彆是第二版在第一版基礎上新增或優化瞭哪些內容,也是我非常關注的。總而言之,這本書給我的感覺是內容豐富、結構嚴謹,理論與實踐相結閤,能夠幫助我快速而深入地掌握Swift這門語言。