産品特色
        編輯推薦
                                      ※這本書可能會是你讀到的most有趣的編程書,作者用網絡化、詼諧幽默的語言,生動地講解有關Swift語言的知識,把看似睏難的概念分解成一個個網紅級的八卦小故事,一邊看小明的故事,就把數組的概念學會瞭。用女神、蘿莉、正太來理解類。其中還會看到作者各種自我吐槽,總之這就是一本邊看邊笑的學習書。 
  ※這本書突齣實戰,通過豆瓣電颱、跑酷熊貓、任務提醒軟件、拖拖看小遊戲、圍住神經貓幾個經典的應用開發案例來告訴你怎樣把基礎知識運用到實際操作中。 
  ※這套書是受到工程師們喜愛的Swift入門實用係列書,榮登2015年的年度好書排行榜。 
  ※第2版基於新發布的Swift2.0做瞭迭代更新,讓你站在技術的製高點上學習編程。 
  ※案例所用的圖片素材和代碼包均可下載。       
內容簡介
     本書通過實例講解Swift語言在軟件開發中的實際應用方法。首先講述Swift的基礎內容,即開發環境的搭建和Swift的基礎語法。由於本書是晉級篇,故不再大篇幅講解基礎內容。再以UIKit控件為主要內容,通過拖拖看小遊戲等案例來充分鞏固UIKit從基礎到高級的知識體係,其中還會涉及網絡數據讀取、圖片緩存等技術。講解SpriteKit的應用,以圍住神經貓、跑酷熊貓兩個實例來講述2D遊戲的開發技術。      
作者簡介
     老鎮,本名曾偉,勤勞碼農一名,擅長iOS遊戲與應用開發。擁有十餘年研發經驗,是國內很早一批Swift研究者。51CTO學院、SwiftV課堂熱門講師。Swift係列視頻教程《跑酷熊貓》、《豆瓣電颱》和《Swift動畫編程指南》的原作者。      
內頁插圖
          精彩書評
     ※本書理論與實踐相結閤,嚮讀者展示瞭Swift的語法、UIKit和SpriteKit等的使用方法。它是一座精彩的Swift實踐城堡。本書配有相關教學視頻,同步講解。書內案例中的素材和代碼均在綫共享,讓你真正做到學以緻用。 
  ——51CTO傳媒總裁熊平  
  ※本書從Swift的語言精要、用Swift控製UIKit控件及Swift實戰(包含基於UIKit的應用實例和基於SpriteKit的遊戲編程)三部分幫助大傢提升Swift語言能力。不管你是Swift語言初學者,還是有一定編程經驗的開發者都可以把它當作案頭工具書。 
  ——51CTO學院高級運營經理曹亞莉  
  ※Swift正在改變iOS的開發生態,本書並不局限於理論介紹,而是采用瞭“項目驅動”的方式來講授知識點,提供瞭多個項目實例,極具參考價值。它不僅適閤作為初級開發者的入門教程,而且也可作為高級開發者參閱的工具書。 
  ——SwiftV課堂創始人周鑫  
  ※本書通過多個遊戲和應用來講解Swift的語法、UIKit和SpriteKit等的使用方法,內容由淺入深,以實際案例解析和鞏固知識點,是一本不可多得的好書。同時本書將作為泰課在綫Swift課程官方指定教材使用。 
  ——泰課在綫聯閤創始人杜增強  
  ※書品如人品。老鎮與我相識多年,勤敏敦厚。以“項目驅動”為理念,進行各方嚮探索和技術研究,重實際,廣博而得其味。今於新秀Swift有心得而集成冊,相信一定能大有益於學人!作為朋友,至誠推薦! 
  ——天地君道培訓創始人黑羽      
目錄
   第1章  Swift語言基礎知識速覽 1 
1.1 開啓新世界的大門 1 
1.2 Swift的前世今生 1 
1.3 Swift與Object-C的比較 2 
1.4 什麼人適閤學習Swift 2 
1.5 下載Xcode 3 
1.6 關於Mac操作係統 4 
1.7 Swift快速入門 5 
1.7.1 常量與變量 5 
1.7.2 常用數據類型 6 
1.7.3 數組 8 
1.7.4 控製流 12 
1.7.5 可選類型 14 
1.7.6 枚舉 15 
1.7.7 類 16 
1.8 Swift開發實例-猜拳小遊戲 17 
第2章 Swift語法速讀 33 
2.1 基礎知識 33 
2.1.1 變量與常量 33 
2.1.2 注釋 34 
2.1.3 整數 34 
2.1.4 浮點數 34 
2.1.5 類型推測 34 
2.1.6 數值類型轉換 34 
2.1.7 布爾值 35 
2.1.8 元組 35 
2.1.9 可選類型 36 
2.1.10 斷言 37 
2.2 基本運算符 37 
2.2.1 賦值運算符 37 
2.2.2 數值運算 38 
2.2.3 自增(自減)運算 38 
2.2.4 復閤賦值 38 
2.2.5 比較運算 38 
2.2.6 三元運算符號 39 
2.2.7 區間 39 
2.2.8 邏輯運算 39 
2.2.9 括號優先級 39 
2.3 字符串和字符 40 
2.3.1 字符串 40 
2.3.2 字符 40 
2.4 集閤類型 41 
2.4.1 數組 41 
2.4.2 字典 43 
2.5 流程控製 45 
2.5.1 for循環 45 
2.5.2 while循環 46 
2.5.3 條件語句 47 
2.5.4 控製轉移語句 50 
2.6 函數 50 
2.7 閉包 53 
2.8 枚舉 53 
2.9 類和結構體 54 
2.10 屬性 55 
2.11 方法 58 
2.12 下標 59 
2.13 繼承 61 
2.14 構造過程 63 
2.15 析構過程 65 
2.16 自動引用計數 65 
2.17 可選鏈 66 
2.18 類型轉換 67 
2.19 類型嵌套 69 
2.20 擴展 70 
2.21 協議 72 
2.22 泛型 73 
2.23 訪問控製 74 
2.24 高級運算符 75 
第3章 基礎UIKit控件概覽 77 
3.1 創建工程及基本操作 77 
3.1.1 創建Single View Application工程 77 
3.1.2 基本操作 79 
3.2 Button(按鈕) 85 
3.2.1 Button控件的基本屬性 85 
3.2.2 Button實例:各類按鈕 87 
3.3 Label 88 
3.3.1 Label控件的基本屬性 89 
3.3.2 Label實例:各類文本標簽 90 
3.4 TextField 90 
3.4.1 文本框控件的屬性 90 
3.4.2 實例:登錄界麵 92 
3.4.3 實例:加法計算器 93 
3.5 TextView 95 
3.5.1 多行文本框的屬性 95 
3.5.2 實例:自定義選擇內容後的菜單 96 
3.6 Switch 98 
3.6.1 Switch控件的屬性 98 
3.6.2 Switch控製TextView的可編輯屬性 98 
3.7 SegmentedControl 99 
3.7.1 Segmented Control的屬性 100 
3.7.2 Segmented Control實例 100 
3.8 ImageView 102 
3.8.1 圖像控件的基本屬性 103 
3.8.2 圖像控件實例 103 
3.9 ProgressView 105 
3.9.1 進度條控件的屬性 105 
3.9.2 進度條控件的實例 106 
3.10 ActivityIndicator View 107 
3.10.1 環形進度條的基本屬性 107 
3.10.2 環形進度條實例 108 
3.11 Slider 109 
3.11.1 拖動條的基本屬性 109 
3.11.2 實例:拖動條控製圖片透明度 110 
3.12 AlertView 111 
3.12.1 警告框的基本屬性 111 
3.12.2 實例:各式各樣的警告框 112 
3.13 ActionSheet 115 
3.13.1 底部警告框的基本屬性 115 
3.13.2 底部警告框的實例 115 
3.14 DatePicker 117 
3.14.1 日期選擇器的基本屬性 117 
3.14.2 日期選擇器的實例 118 
3.15 PickerView 119 
3.15.1 選擇器的一些屬性 119 
3.15.2 選擇器的實例 119 
3.16 Stepper 123 
3.16.1 步進器的一些屬性 123 
3.16.2 實例:屬性加點器 124 
3.17 WebView 125 
3.17.1 網頁視圖控件的一些屬性 125 
3.17.2 實例:迷你網頁瀏覽器 126 
3.18 Toolbar與Bar Button Item 127 
3.18.1 工具條的一些屬性 128 
3.18.2 Bar Button Item的一些屬性 128 
3.18.3 工具條的實例 129 
3.19 TableView 130 
3.19.1 TableView的一些屬性 131 
3.19.2 TableView的一個簡單例子 132 
3.20 SearchBar 136 
3.20.1 搜索條的簡單屬性 137 
3.20.2 搜索條的簡單例子 137 
3.20.3 Search Bar and Search Display Controller例子 142 
3.21 NavigationBar 144 
3.21.0 導航條的實例 144 
3.22 NavigationController 146 
3.22.1 導航控製器的屬性 146 
3.22.2 導航控製器實例 147 
3.23 TabBar 152 
3.23.1 TabBar的一些屬性 152 
3.23.2 TabBarItem的一些屬性 153 
3.23.3 TabBar實例 154 
3.24 TabBar Controller 154 
3.25 Page View Controller 156 
3.25.1 Page View Controller屬性 156 
3.25.2 Page View Controller實例 156 
3.26 UIScrollView 滾動視圖 158 
3.26.1 UIScrollView實例 158 
3.27 UICollectionView網格 160 
3.27.1 UICollectionView實例 160 
第4章 拖拖看小遊戲 163 
4.1 構建主界麵 164 
4.2 基本變量和更新函數 168 
4.3 判斷得分 169 
4.4 重新開始玩遊戲 173 
4.5 新增遊戲規則界麵實現跳轉 174 
4.6 自定義界麵 178 
第5章 豆瓣電颱 186 
5.1 應用整體分析 186 
5.2 構建界麵 188 
5.3 圓形封麵以及模糊背景 190 
5.4 歌麯列錶和頻道列錶 194 
5.5 獲取網絡數據 200 
5.6 設置頻道列錶數據 206 
5.7 反嚮傳值 210 
5.8 設置歌麯封麵 212 
5.9 簡單的圖片緩存策略 215 
5.10 播放音樂 217 
5.11 控製音樂 221 
5.12 自動播放控製 225 
5.13 播放時間 229 
5.14 播放進度 231 
5.15 顯示歌詞 233 
5.16 後颱播放 242 
5.17 鎖屏時顯示歌麯的封麵 243 
5.18 鎖屏時歌麯的播放控製 245 
第6章 任務提醒軟件 249 
6.1 軟件預覽 249 
6.2 創建項目 251 
6.3 開始編寫任務分類模塊 254 
6.4 綁定類 262 
6.5 模擬數據 265 
6.6 Model初體驗 266 
6.7 全局數據 269 
6.8 添加任務分類 271 
6.9 編輯任務分類 276 
6.10 滑動刪除任務類型 279 
6.11 任務分類圖標 282 
6.12 滑動編輯與刪除任務分類 288 
6.13 滑動編輯與刪除任務分類:iOS8 295 
6.14 小細節處理 297 
6.15 任務清單 302 
6.16 設計任務清單的Cell 309 
6.17 計算未完成的任務 312 
6.18 滑動刪除任務 314 
6.19 添加任務 315 
6.20 編輯任務 323 
6.21 選擇提醒時間 326 
6.22 加入重視程度 331 
6.23 添加任務模塊的細節 337 
6.24 存儲本地數據 344 
6.25 讀取本地數據 349 
6.26 數據本地化之NSUserDefaults 350 
6.27 任務分類列錶排序 351 
6.28 本地消息通知 351 
6.29 數據保護措施 358 
6.30 應用美化 360 
第7章 SpriteKit簡介 363 
7.1 簡單聊一聊 363 
7.1.1 聊一聊SKNode 364 
7.1.2 聊一聊SKScene 364 
7.1.3 聊一聊紋理 364 
7.1.4 聊一聊動作(Action) 364 
7.1.5 聊一聊物理係統 364 
7.2 如何學習SpriteKit 365 
7.2.1 創建SpriteKit項目 365 
7.2.2 創建第一個場景 367 
7.2.3 往場景中添加內容 370 
7.2.4 讓文本動起來 371 
7.2.5 場景的轉換 371 
7.2.6 使用SKSpriteNode 372 
7.2.7 添加燈光 373 
7.2.8 物理係統 375 
第8章 遊戲實戰:圍住神經貓 377 
8.1 遊戲預覽 377 
8.2 創建遊戲項目 378 
8.3 創建背景 380 
8.4 創建圓點類 382 
8.5 在場景中生成圓點 384 
8.6 神經貓的類 393 
8.7 尋路 395 
8.8 作業 407 
第9章 遊戲實戰:跑酷熊貓 408 
9.1 創建遊戲工程以及導入素材 409 
9.2 創建熊貓類 412 
9.3 顯示一個動態的熊貓 415 
9.4 熊貓的跳和打滾 417 
9.5 踩踏平颱是怎麼煉成的 419 
9.6 創建平颱類以及平颱工廠類 421 
9.7 平颱的移動 425 
9.8 産生源源不斷的移動平颱 425 
9.9 移除場景之外的平颱 428 
9.10 視差滾動背景 429 
9.11 歡迎進入物理世界 436 
9.12 與平颱的碰撞 439 
9.13 二段跳的實現 441 
9.14 熊貓的打滾動作 442 
9.15 起跳特效 444 
9.16 蘋果以及蘋果工廠類 449 
9.17 計分闆 454 
9.18 下沉和升降的平颱 456 
9.19 加速度 462 
9.20 重置遊戲 462 
9.21 聲音類 465 
9.22 修復bug 475 
後記 477       
前言/序言
       
				 
				
				
					《Swift語言實戰晉級(第2版)》:不止於編碼,點燃你的App與遊戲創造力  你是否曾夢想將腦海中奇思妙想轉化為屏幕上生動的交互體驗?你是否渴望掌握一股強大的力量,能夠打造齣引人入勝的移動應用,或是令人沉浸的電子遊戲?《Swift語言實戰晉級(第2版)》正是為你而來。這不僅僅是一本介紹Swift編程語言的書籍,它更是一份通往App與遊戲開發世界的深度指南,一份激發你無限創造力的靈感源泉,以及一份助你從入門到精通的嚴謹階梯。  在當今數字浪潮洶湧的時代,移動應用和電子遊戲已成為人們生活的重要組成部分,它們連接著世界,娛樂著大眾,更是無數創新思想實現價值的載體。而Swift,作為蘋果公司推齣的強大、現代且直觀的編程語言,已然成為iOS、macOS、watchOS和tvOS平颱開發的首選。它以其齣色的性能、清晰的語法以及對安全性的高度重視,贏得瞭全球開發者的高度認可。  本書的獨特價值:從理論到實踐的無縫銜接  《Swift語言實戰晉級(第2版)》深刻理解初學者和進階者在學習過程中的痛點與需求。我們不僅僅停留在枯燥的語法講解,而是將理論知識巧妙地融入一係列精心設計的實戰項目之中。從構建一個簡單的待辦事項列錶應用,到開發一款功能豐富的益智遊戲,再到探索更復雜的交互設計和數據管理,本書將引導你一步步解鎖Swift語言的強大能力,並將其轉化為實際可運行的App和遊戲。  目標讀者:     初學者: 對編程零基礎,但對App或遊戲開發充滿熱情,渴望係統學習Swift語言並快速上手實踐。    有其他語言基礎的開發者: 想要轉嚮iOS或macOS開發,學習Swift語言的特性和蘋果生態係統的開發流程。    已有Swift基礎的開發者: 希望深入理解Swift的進階特性,掌握更高級的編程技巧,提升開發效率和代碼質量,並能應對更復雜的項目需求。    對遊戲開發感興趣的開發者: 希望學習如何利用Swift和相關框架(如SpriteKit)來創建2D或3D遊戲。  本書的核心內容亮點:  第一部分:Swift語言的基石與核心概念  我們深知紮實的基礎是通往精通的必經之路。《Swift語言實戰晉級(第2版)》將從Swift語言最核心的概念入手,為你構建堅實的第一道防綫:     變量、常量與數據類型: 深入理解Swift如何處理各種數據,從基本的整型、浮點型到字符串、布爾值,以及枚舉和元組的靈活運用。    運算符與錶達式: 掌握算術、比較、邏輯、賦值等各類運算符,學會構建復雜的錶達式來完成計算和邏輯判斷。    控製流語句: 精通條件判斷(if、switch)、循環(for-in、while、repeat-while)等控製流,讓你能夠精確控製程序的執行流程,實現復雜的邏輯。    函數: 學習如何定義、調用函數,理解參數傳遞、返迴值,以及函數作為一等公民在Swift中的高級用法,如閉包。    集閤類型(數組、字典、集閤): 掌握如何高效地存儲和管理數據集閤,學習各種操作方法,為構建復雜數據結構打下基礎。    類與結構體: 深入理解麵嚮對象編程的核心概念,掌握如何創建類和結構體,學習屬性、方法、初始化器,以及它們之間的區彆與聯係。    枚舉與關聯值: 探索枚舉的強大之處,學會使用關聯值來存儲額外信息,讓代碼更具錶現力和安全性。    屬性(存儲屬性、計算屬性、屬性觀察器): 深入理解屬性的生命周期和行為,學會如何通過屬性觀察器來響應屬性值的變化。    方法(實例方法、類型方法): 掌握如何定義和調用實例方法與類型方法,理解它們在對象行為中的作用。    初始化器: 學習如何正確地初始化對象,理解指定初始化器、便利初始化器,以及它們在類的繼承中的作用。    可選類型(Optionals): 這是Swift語言的一大亮點。我們將深入講解可選類型的概念,以及如何安全地處理可能為nil的值,從而避免運行時崩潰。    錯誤處理(Error Handling): 學習如何使用`try-catch`機製來處理和報告錯誤,讓你的應用程序更加健壯和穩定。  第二部分:Swift UI 開發實戰——構建現代化的用戶界麵  掌握瞭Swift語言的基礎,下一步便是將其應用於構建引人注目的用戶界麵。《Swift語言實戰晉級(第2版)》將為你詳細解析SwiftUI,這是蘋果公司推齣的聲明式UI框架,它極大地簡化瞭UI的開發流程:     SwiftUI 基礎: 學習SwiftUI的基本工作原理,理解聲明式UI的優勢,以及如何使用視圖(Views)來構建用戶界麵。    布局與容器: 掌握如何使用`VStack`、`HStack`、`ZStack`、`List`、`ScrollView`等容器來組織和布局UI元素,實現響應式設計。    控件與交互: 學習使用各種常見的UI控件,如`Text`、`Image`、`Button`、`TextField`、`Toggle`、`Slider`等,並實現用戶交互。    狀態管理: 理解SwiftUI中的狀態管理機製,包括`@State`、`@Binding`、`@ObservedObject`、`@EnvironmentObject`等屬性包裝器,這是構建動態、響應式UI的關鍵。    導航與頁麵跳轉: 學習如何使用`NavigationView`、`NavigationLink`等組件來實現應用程序的頁麵導航和跳轉。    數據綁定與集閤視圖: 掌握如何將數據模型與UI視圖進行綁定,並學習如何使用`List`和`ForEach`來高效地展示數據集閤。    動畫與過渡效果: 為你的App增添生動感,學習如何為UI元素添加平滑的動畫和過渡效果。    自定義視圖與組件: 學習如何創建可復用的自定義視圖,封裝復雜的UI邏輯,提升開發效率。    異步操作與網絡請求: 學習如何在SwiftUI中進行異步操作,例如從網絡獲取數據,並通過UI元素展示。    Core Data 與數據持久化: 掌握如何使用Core Data來本地存儲和管理應用數據,確保數據的持久化。  第三部分:Swift 遊戲開發之旅——點燃你的遊戲引擎  對於熱衷於電子遊戲創作的你,《Swift語言實戰晉級(第2版)》同樣提供瞭深入的探索路徑:     SpriteKit 框架入門: 學習蘋果強大的2D遊戲開發框架SpriteKit,理解其核心概念,如場景(Scenes)、節點(Nodes)、動作(Actions)等。    遊戲元素與精靈: 學習如何創建和管理遊戲中的角色、道具等視覺元素,以及如何實現它們的動畫。    物理引擎與碰撞檢測: 掌握SpriteKit內置的物理引擎,學習如何模擬真實世界的物理效果,並實現精確的碰撞檢測。    用戶輸入與控製: 如何讓玩傢與遊戲進行交互?學習如何處理觸摸、手勢等輸入事件,並轉化為遊戲控製。    遊戲邏輯與關卡設計: 學習如何編寫遊戲的核心邏輯,設計遊戲關卡,實現遊戲的目標和規則。    音效與背景音樂: 為你的遊戲增添沉浸感,學習如何集成和管理音效與背景音樂。    遊戲狀態管理: 學習如何管理遊戲的不同狀態,例如開始菜單、遊戲進行中、暫停、遊戲結束等。    簡單的2D遊戲實戰: 通過開發一款完整的2D遊戲(如平颱跳躍、太空射擊等),將所學知識融會貫通。  第四部分:Swift 語言進階與最佳實踐  在掌握瞭基礎和核心應用後,是時候深入挖掘Swift語言的強大之處,並瞭解如何編寫更優雅、更高效、更可維護的代碼:     協議(Protocols)與委托(Delegation): 理解協議在Swift中的重要性,學習如何定義和使用協議,以及如何通過委托模式實現組件間的解耦。    泛型(Generics): 學習如何編寫靈活且可重用的代碼,讓函數和類型能夠處理多種數據類型。    內存管理(ARC): 深入理解Swift的自動引用計數(ARC)機製,掌握如何避免內存泄漏,確保應用程序的穩定性。    訪問控製(Access Control): 學習如何控製代碼的可見性,保護你的代碼不被隨意訪問和修改。    高級函數式編程概念: 探索Swift中的`map`、`filter`、`reduce`等高階函數,以及如何用函數式思維來解決問題。    並發編程(Concurrency): 學習如何利用Swift的現代並發特性(如`async/await`)來編寫高效的異步代碼,提升應用程序的響應能力。    單元測試與集成測試: 編寫健壯的應用離不開測試。學習如何使用XCTest框架進行單元測試和集成測試。    代碼重構與優化: 掌握常見的代碼重構技巧,提升代碼的可讀性、可維護性和性能。  本書的特點:     豐富的實戰項目: 從基礎的UI組件到復雜的App功能,再到完整的遊戲,每個章節都配有精心設計的實戰項目,讓你在動手實踐中鞏固所學。    循序漸進的學習路徑: 內容由淺入深,結構清晰,確保不同基礎的讀者都能找到適閤自己的學習節奏。    深入的原理講解: 不僅僅告訴你“怎麼做”,更重要的是解釋“為什麼這麼做”,幫助你理解背後的原理,培養獨立解決問題的能力。    強調最佳實踐: 引導讀者養成良好的編程習慣,編寫高質量、易於維護的代碼。    覆蓋App與遊戲開發: 兼顧瞭主流的App開發和令人興奮的遊戲開發,滿足不同開發者的需求。    前沿的SwiftUI技術: 采用蘋果最新的UI開發框架SwiftUI,讓你掌握未來App開發的主流技術。  開啓你的編程之旅,釋放你的創造潛能!  《Swift語言實戰晉級(第2版)》不僅僅是一本書,它更是你通往App和遊戲開發世界的一扇大門。無論你是懷揣著改變世界的App夢想,還是渴望打造齣讓人驚嘆的遊戲,亦或是僅僅對編程充滿好奇,本書都將是你不可或缺的夥伴。  翻開這本書,你將學會如何將抽象的代碼轉化為用戶喜愛的産品。你將掌握讓數字世界栩栩如生的魔法。你將點燃心中的創造火焰,用Swift語言書寫屬於自己的精彩篇章。現在,就讓我們一起踏上這段激動人心的Swift語言實戰之旅吧!