從零開始學Swift(第2版)

從零開始學Swift(第2版)
定價:594
NT $ 517
  • 作者:關東升
  • 出版社:人民郵電出版社
  • 出版日期:2017-05-01
  • 語言:簡體中文
  • ISBN10:7115450927
  • ISBN13:9787115450920
  • 裝訂:528頁 / 普通級 / 2-1
 

內容簡介

本書基於Swift3.x,通過大量案例全面介紹蘋果平台的應用開發。全書共分5部分,第一部分介紹了Swift的一些基礎知識,第二部分介紹了基於Swift語言的中高級內容,第三部分主要介紹了Swift與Objective-C/C/C++的混合編程等相關問題,第四部分介紹了基於Swift語言的2D游戲引擎技術,第五部分詳細介紹了一個游戲App的開發過程。

關東升,一個在IT領域摸爬滾打20年的程序員、培訓師、作者,另着有《iOS開發指南(第5版)》《Android網絡游戲開發實戰》《Cocos2d-x實戰》系列等書。
 

目錄

第1章准備起航
1.1 本書約定
1.1.1 示例代碼約定
1.1.2 圖示約定
1.1.3 函數和方法簽名約定
1.1.4 承接上一行代碼約定
1.1.5 代碼行號約定
1.2 Swift開發工具
1.2.1 Xcode開發工具
1.2.2 AppCode開發工具
1.3 本章小結
1.4 同步練習
第2章 第一個SWIFT程序
2.1 使用REPL
2.1.1 啟動SwiftREPL
2.1.2 使用SwiftREPL
2.2 使用Playground
2.2.1 編程利器Playground
2.2.2 編寫HelloWorld程序
2.3 通過Xcode創建macOS工程
2.3.1 創建macOS工程
2.3.2 編譯和運行
2.4 使用swiftc命令
2.4.1 編譯
2.4.2 運行
2.5 代碼解釋
2.6 本章小結
2.10 同步練習
第3章 SWIFT語法基礎
3.1 標識符和關鍵字
3.1.1 標識符
3.1.2 關鍵字
3.2 常量和變量
3.2.1 常量
3.2.2 變量
3.2.3 使用var還是let
3.3 注釋
3.4 表達式
3.5 本章小結
3.6 同步練習
第4章 運算符
4.1 算術運算符
4.1.1 一元運算符
4.1.2 二元運算符
4.1.3 算術賦值運算符
4.2 關系運算符
4.3 邏輯運算符
4.4 位運算符
4.5 其他運算符
4.6 本章小結
4.7 同步練習
第5章 SWIFT原生數據類型
5.1 Swift數據類型
5.2 整型
5.3 浮點型
5.4 數字表示方式
5.4.1 進制數字表示
5.4.2 指數表示
5.4.3 其他表示
5.5 數字類型之間的轉換
5.5.1 整型之間的轉換
5.5.2 整型與浮點型之間的轉換
5.6 布爾型
5.7 元組類型
5.8 可選類型
5.8.1 可選類型概念
5.8.2 可選類型值拆包
5.8.3 可選綁定
5.9 本章小結
5.10 同步練習
第6章 SWIFT原生字符串
6.1 字符
6.1.1 Unicode編碼
6.1.2 轉義符
6.2 創建字符串
6.3 可變字符串
6.3.1 字符串拼接
6.3.2 字符串插入、刪除和替換
6.4 字符串比較
6.4.1 大小和相等比較
6.4.2 前綴和后綴比較
6.5 本章小結
6.6 同步練習
第7章 控制語句
7.1 分支語句
7.1.1 if語句
7.1.2 switch語句
7.1.3 guard語句
7.2 循環語句
7.2.1 while語句
7.2.2 repeat—while語句
7.2.3 for語句
7.3 跳轉語句
7.3.1 break語句
7.3.2 continue語句
7.3.3 fallthrough語句
7.4 范圍與區間運算符
7.4.1 switch中使用區間運算符
7.4.2 for中使用區間運算符
7.5 值綁定
7.5.1 if中的值綁定
7.5.2 guard中的值綁定
7.5.3 switch中的值綁定
7.6 where語句
7.6.1 switch中使用where語句
7.6.2 for中使用where語句
7.7 本章小結
7.8 同步練習
第8章 SWIFT原生集合類型
8.1 Swift中的數組集合
8.1.1 數組聲明和初始化
8.1.2 可變數組
8.1.3 數組遍歷
8.2 Swift中的字典集合
8.2.1 字典聲明與初始化
8.2.2 可變字典
8.2.3 字典遍歷
8.3 Swift中的Set集合
8.3.1 Set聲明和初始化
8.3.2 可變Set集合
8.3.3 Set集合遍歷
8.3.4 Set集合運算
8.4 本章小結
8.5 同步練習
第9章 函數
9.1 定義函數
9.2 函數參數
9.2.1 使用參數標簽
9.2.2 省略參數標簽
9.2.3 參數默認值
9.2.4 可變參數
9.2.5 值類型參數的引用傳遞
9.3 函數返回值
9.3.1 無返回值函數
9.3.2 多返回值函數
9.4 函數類型
9.4.1 作為函數返回類型使用
9.4.2 作為參數類型使用
9.5 嵌套函數
9.6 本章小結
9.7 同步練習
第10章 閉包
10.1 回顧嵌套函數
10.2 閉包的概念
10.3 使用閉包表達式
10.3.1 類型推斷簡化
10.3.2 隱藏return關鍵字
10.3.3 省略參數名
10.3.4 使用閉包返回值
10.4 使用尾隨閉包
10.5 捕獲上下文中的變量和常量
10.6 本章小結
10.7 同步練習
第11章 SWIFT語言中的面向對象特性
11.1 面向對象概念和基本特征
11.2 Swift中的面向對象類型
11.3 枚舉
11.3.1 成員值
11.3.2 原始值
11.3.3 相關值
11.4 結構體與類
11.4.1 類和結構體定義
11.4.2 再談值類型和引用類型
11.4.3 引用類型的比較
11.4.4 運算符重載
11.5 類型嵌套
11.6 可選鏈
11.6.1 可選鏈的概念
11.6.2 使用問號()和感嘆號(!)
11.7 訪問限定
11.7.1 訪問范圍
11.7.2 訪問級別
11.7.3 使用訪問級別*佳實踐
11.8 選擇類還是結構體*佳實踐
11.8.1 類和結構體的異同
11.8.2 選擇的原則
11.9 本章小結
11.10 同步練習
第12章 屬性與下標
12.1 存儲屬性
12.1.1 存儲屬性概念
12.1.2 延遲存儲屬性
12.2 計算屬性
12.2.1 計算屬性的概念
12.2.2 只讀計算屬性
12.2.3 結構體和枚舉中的計算屬性
12.3 屬性觀察者
12.4 靜態屬性
12.4.1 結構體靜態屬性
12.4.2 枚舉靜態屬性
12.4.3 類靜態屬性
12.5 使用下標
12.5.1 下標概念
12.5.2 示例:二維數組
12.6 本章小結
12.7 同步練習
第13章 方法
13.1 實例方法
13.2 可變方法
13.3 靜態方法
13.3.1 結構體靜態方法
13.3.2 枚舉靜態方法
13.3.3 類靜態方法
13.4 本章小結
13.5 同步練習
第14章 構造與析構
14.1 構造函數
14.1.1 默認構造函數
14.1.2 構造函數與存儲屬性初始化
14.1.3 使用參數標簽
14.2 構造函數重載
14.2.1 構造函數重載概念
14.2.2 結構體構造函數代理
14.2.3 類構造函數橫向代理
14.3 析構函數
14.4 本章小結
14.5 同步練習
第15章 類繼承
15.1 從一個示例開始
15.2 構造函數繼承
15.2.1 構造函數調用規則
15.2.2 構造過程安全檢查
15.2.3 構造函數繼承
15.3 重寫
15.3.1 重寫實例屬性
15.3.2 重寫靜態屬性
15.3.3 重寫實例方法
15.3.4 重寫靜態方法
15.3.5 下標重寫
15.3.6 使用final關鍵字
15.4 類型檢查與轉換
15.4.1 使用is進行類型檢查
15.4.2 使用as、as!和as進行類型轉換
15.4.3 使用AnyObject和Any類型
15.5 本章小結
15.6 同步練習
第16章 擴展
16.1 「輕量級」繼承機制
16.2 聲明擴展
16.3 擴展計算屬性
16.4 擴展方法
16.5 擴展構造函數
16.5.1 值類型擴展構造函數
16.5.2 引用類型擴展構造函數
16.6 擴展下標
16.7 本章小結
16.8 同步練習
第17章 協議
17.1 協議概念
17.2 協議定義和遵從
17.3 協議方法
17.3.1 協議實例方法
17.3.2 協議靜態方法
17.3.3 協議可變方法
17.4 協議屬性
17.4.1 協議實例屬性
17.4.2 協議靜態屬性
17.5 面向協議編程
17.5.1 協議類型
17.5.2 協議的繼承
17.5.3 協議擴展
17.5.4 協議的合成
17.5.5 擴展中遵從協議
17.6 面向協議編程示例:表視圖中使用擴展協議
17.7 本章小結
17.8 同步練習
第18章 泛型
18.1 一個問題的思考
18.2 泛型函數
18.2.1 使用泛型函數
18.2.2 多類型參數
18.3 泛型類型
18.4 泛型擴展
18.5 本章小結
18.6 同步練習
第19章 SWIFT編碼規范
19.1 命名規范
19.2 注釋規范
19.2.1 文件注釋
19.2.2 文檔注釋
19.2.3 代碼注釋
19.2.4 使用地標注釋
19.3 聲明
19.3.1 變量或常量聲明
19.3.2 屬性聲明
19.4 代碼排版
19.4.1 空行
19.4.2 空格
19.4.3 斷行
19.4.4 縮進
19.5 本章小結
19.6 同步練習
第20章 SWIFT內存管理
20.1 Swift內存管理概述
20.1.1 引用計數
20.1.2 示例:Swift自動引用計數
20.2 強引用循環
20.3 打破強引用循環
20.3.1 弱引用
20.3.2 無主引用
20.4 閉包中的強引用循環
20.4.1 一個閉包中的強引用循環示例
20.4.2 解決閉包強引用循環
20.5 本章小結
20.6 同步練習
第21章 錯誤處理
21.1 Cocoa錯誤處理模式
21.2 do—try—catch錯誤處理模式
21.2.1 捕獲錯誤
21.2.2 錯誤類型
21.2.3 聲明拋出錯誤
21.2.4 在函數或方法中拋出錯誤
21.2.5 try和try!的使用區別
21.3 案例:MyNotes應用數據持久層實現
21.3.1 MyNotes應用介紹
21.3.2 MyNotes應用數據持久層設計
21.3.3 實現Note實體類
21.3.4 NoteDAO代碼實現
21.3.5 使用defer語句釋放資源
21.3.6 測試示例
21.4 本章小結
21.5 同步練習
第22章 FOUNDATION框架
22.1 數字類NSNumber
22.1.1 獲得NSNumber對象
22.1.2 比較NSNumber對象
22.1.3 數字格式化
22.1.4 NSNumber與Swift原生數字類型之間的橋接
22.2 字符串類
22.2.1 NSString類
22.2.2 NSMutableString類
22.2.3 NSString與String之間的橋接
22.3 數組類
22.3.1 NSArray類
22.3.2 NSMutableArray類
22.3.3 NSArray與Swift原生數組之間的橋接
22.4 字典類
22.4.1 NSDictionary類
22.4.2 NSMutableDictionary類
22.4.3 NSDictionary與Swift原生字典之間的橋接
22.5 NSSet集合類
22.5.1 NSSet類
22.5.2 NSMutableSet類
22.5.3 NSSet與Swift原生Set之間的橋接
22.6 文件管理
22.6.1 訪問目錄
22.6.2 目錄操作
22.6.3 文件操作
22.7 字節緩存
22.7.1 訪問字節緩存
22.7.2 示例:Base64解碼與編碼
22.8 日期與時間
22.8.1 NSDate和Date
22.8.2 日期時間格式化
22.8.3 NSCalendar、Calendar、NSDateComponents和DateComponents
22.8.4 示例:時區轉換
22.9 使用謂詞NSPredicate過濾數據
22.9.1 一個過濾員工花名冊的示例
22.9.2 使用謂詞NSPredicate
22.9.3 NSPrdicate與集合
22.9.4 格式說明符
22.9.5 運算符
22.10 使用正則表達式
22.10.1 在NSPredicate中使用正則表達式
22.10.2 使用NSRegularExpression
22.10.3 示例:日期格式轉換
22.11 本章小結
第23章 SWIFT與OBJECTIVE—C混合編程
23.1 選擇語言
23.2 文件擴展名
23.3 Swift與Objective—CAPI映射
23.3.1 構造函數映射
23.3.2 方法名映射
23.4 同一應用目標中的混合編程
23.4.1 什麼是目標
23.4.2 Swift調用Objective—C
23.4.3 Objective—C調用Swift
23.5 同一框架目標中的混合編程
23.5.1 鏈接庫和框架
23.5.2 Swift調用Objective—C
23.5.3 測試框架目標
23.5.4 Objective—C調用Swift
23.6 本章小結
第24章 SWIFT與C/C++混合編程
24.1 數據類型映射
24.1.1 C語言基本數據類型
24.1.2 C語言指針類型
24.2 應用目標中的混合編程
24.2.1 Swift調用CAPI
24.2.2 Swift調用C++API
24.3 框架目標中的混合編程
24.3.1 同一框架目標中Swift調用C或C++API
24.3.2 Swift調用第三方庫中的C或C++API
24.4 案例:用SQLite嵌入式數據庫實現MyNotes數據持久層
24.4.1 Note實體類代碼
24.4.2 創建表
24.4.3 插入數據
24.4.4 查詢數據
24.4.5 應用沙盒目錄
24.4.6 表示層開發
24.5 本章小結
第25章 SPRITEKIT游戲引擎
25.1 移動平台游戲引擎介紹
25.2 第一個SpriteKit游戲
25.2.1 創建工程
25.2.2 工程剖析
25.3 一切都是節點
25.3.1 節點「家族」
25.3.2 節點樹
25.3.3 節點中重要的方法
25.3.4 節點中重要的屬性
25.4 精靈
25.4.1 精靈類SKSpriteNode
25.4.2 案例:沙漠英雄場景
25.4.3 使用紋理圖集性能優化
25.5 場景切換
25.5.1 場景切換方法
25.5.2 場景過渡動畫
25.5.3 案例:沙漠英雄場景切換
25.6 動作
25.6.1 常用動作
25.6.2 組合動作
25.6.3 案例:幀動畫實現
25.7 粒子系統
25.7.1 粒子系統屬性
25.7.2 內置粒子系統模板
25.8 游戲音樂與音效
25.8.1 音頻文件介紹
25.8.2 macOS和iOS平台音頻優化
25.8.3 背景音樂
25.8.43D音效
25.9 物理引擎
25.9.1 物理引擎核心概念
25.9.2 物理引擎中的物體
25.9.3 接觸與碰撞
25.9.4 案例:食品的接觸與碰撞
25.10 本章小結
第26章 游戲APP實戰——迷失航線
26.1 《迷失航線》游戲分析與設計
26.1.1 《迷失航線》故事背景
26.1.2 需求分析
26.1.3 原型設計
26.1.4 游戲腳本
26.2 任務1:游戲工程的創建與初始化
26.2.1 迭代1.1:創建工程
26.2.2 迭代1.2:自定義類型維護
26.2.3 迭代1.3:添加資源文件
26.2.4 迭代1.4:添加粒子系統
26.3 任務2:創建Loading場景
26.3.1 迭代2.1:設計場景
26.3.2 迭代2.2:Loading動畫
26.3.3 迭代2.3:預處理加載紋理
26.4 任務3:創建Home場景
26.4.1 迭代3.1:設計場景
26.4.2 迭代3.2:實現代碼
26.5 任務4:創建設置場景
26.5.1 迭代4.1:設計場景
26.5.2 迭代4.2:實現代碼
26.6 任務5:創建幫助場景
26.6.1 迭代5.1:設計場景
26.6.2 迭代5.2:實現代碼
26.7 任務6:實現游戲場景
26.7.1 迭代6.1:設計場景
26.7.2 迭代6.2:創建敵人精靈
26.7.3 迭代6.3:創建玩家飛機精靈
26.7.4 迭代6.4:創建子彈精靈
26.7.5 迭代6.5:初始化游戲場景
26.7.6 迭代6.6:玩家移動飛機
26.7.7 迭代6.7:游戲循環與任務調度
26.7.8 迭代6.8:游戲場景菜單實現
26.7.9 迭代6.9:玩家飛機發射子彈
26.7.10 迭代6.10:子彈與敵人的碰撞檢測
26.7.11 迭代6.11:玩家飛機與敵人的碰撞檢測
26.8 任務7:游戲結束場景
26.8.1 迭代7.1:設計場景
26.8.2 迭代7.2:實現代碼
26.9 還有「*后一公里」
26.9.1 添加圖標
26.9.2 調整Identity和Deployment Info屬性
26.9.3 調整程序代碼
26.10 本章小結
網路書店 類別 折扣 價格
  1. 新書
    87
    $517