iOS 8 Swift編程指南

iOS 8 Swift編程指南

《iOS 8 Swift編程指南》是2015年6月電子工業出版社出版的圖書,作者是楊宏焱。

內容簡介

《iOS 8 Swift編程指南》創新性地將語言和框架結合起來介紹。全書分為兩部分:第一部分是Swift語言介紹,共4章;第二部分則是iOS 8特性的介紹,從App開發者的角度闡述Swift語言在新SDK上的實際套用。本書在介紹iOS 8每個特性的過程中,配以豐富的Swift代碼案例,以此讓讀者在學習iOS 8的同時,積累大量的 Swift 編碼經驗。

內容提要

《iOS 8 Swift編程指南》創新性地將語言和框架結合起來介紹。全書分為兩部分:第一部分是 Swift 語言介紹,共4章;第二部分則是iOS 8特性的介紹,從App開發者的角度闡述Swift語言在新SDK上的實際套用。本書在介紹iOS 8每個特性的過程中,配以豐富的Swift代碼案例,以此讓讀者在學習iOS 8的同時,積累大量的 Swift 編碼經驗。

《iOS 8 Swift編程指南》適合所有層次的iOS開發者閱讀、參考,無論你是否具有Objective-C編程經驗。

目錄

第一部分 Swift語言編程指南

第1章 Swift初見/2

1.1 什麼是Swift/2

1.2 為什麼要學習Swift/3

1.3 Objective-C程式設計師學習Swift需要特別關注的地方/3

1.3.1 類型推斷與類型安全/4

1.3.2 泛型/5

1.3.3 數組和字典/6

1.3.4 字元串/7

1.3.5 switch語句/8

1.4 關於Swift初學者的一些問題/9

1.4.1 從哪裡獲得Swift/9

1.4.2 是否需要先學Objective-C,再學Swift/9

1.4.3 “老鳥”們學習Swift是否會更輕鬆/10

1.4.4 開發iOS 8和OS X Yosemite程式只能用Swift嗎/10

1.4.5 Swift是否能在當前的iOS和OS X版本上工作/10

1.4.6 什麼是Playground/11

1.4.7 關於NDA/11

1.4.8 有Swift能做到而Objective-C無法做到的嗎?反過來說呢/11

1.4.9 某些API是否無法被Swift調用/11

1.4.10 在Playground中,如何以圖表方式查看變數值/12

1.4.11 如何打開REPL/13

1.4.12 Swift如何調用Objective-C代碼或第三方庫/14

1.4.13 Swift數組只能存儲同一種類型的數據嗎/15

1.4.14 字典是否也和數組一樣是強類型的/15

1.4.15 Swift中有類似於Objective-C中的id嗎/15

1.4.16 在 Swift中,如何自省/15

1.4.17 在Swift中如何使用GCD/16

1.4.18 Objective-C中提供的Internationalization宏是否仍然可用/16

1.4.19 仍然需要注意持有循環嗎/17

1.4.20 何時使用strong、weak以及unowned/17

第2章 Swift語法基礎/18

2.1 Playground/18

2.2 常量、變數、字元串/21

2.2.1 常量/21

2.2.2 變數/21

2.2.3 分號/22

2.2.4 字元串/22

2.2.5 字元串插值和運算/23

2.3 簡單類型和類型推斷/23

2.3.1 數值類型/23

2.3.2 類型轉換/25

2.3.3 布爾類型/26

2.3.4 區間/26

2.3.5 元組/27

2.4 流程控制/28

2.4.1 for循環/28

2.4.2 while語句/31

2.4.3 if語句/31

2.4.4 switch語句/33

第3章 結構和類/38

3.1 可空類型/38

3.1.1 認識可空/38

3.1.2 聲明可空/40

3.1.3 可空類型與非可空類型的轉換/42

3.2 集合/44

3.2.1 數組/45

3.2.2 字典/47

3.3 枚舉/50

3.3.1 定義枚舉時填充原始值/50

3.3.2 使用其他類型/51

3.3.3 不填充原始值/52

3.3.4 聯合/53

3.4 結構和類綜述/54

3.4.1 屬性/54

3.4.2 構造器/55

3.4.3 實例方法/56

3.4.4 類方法/56

3.4.5 下標方法/57

3.4.6 繼承/59

第4章 Swift函式式編程/61

4.1 函式/61

4.1.1 函式的定義/61

4.1.2 外部參數名/62

4.1.3 簡化外部參數名/62

4.1.4 默認值/63

4.1.5 可變參數/64

4.1.6 變數參數和輸出參數/64

4.1.7 用函式作為參數/65

4.1.8 函式作為返回值/66

4.1.9 嵌套函式/67

4.2 閉包/68

4.2.1 聲明閉包/69

4.2.2 匿名閉包/69

4.2.3 尾末閉包/70

4.2.4 值捕獲/70

4.3 協定/71

4.3.1 協定的聲明/71

4.3.2 實現協定/72

4.3.3 協定是一種類型/72

4.3.4 組合協定/73

4.4 擴展/74

4.4.1 聲明擴展/74

4.4.2 擴展和協定/75

4.5 泛型/75

4.5.1 泛型函式/76

4.5.2 泛型和協定/76

4.5.3 泛型約束/77

4.5.4 泛型類型/78

4.6 可空鏈/79

4.6.1 ?操作符/79

4.6.2 ??操作符/82

第二部分 iOS 8 SDK

第5章 故事板與自適應布局/86

5.1 自適應布局入門/86

5.1.1 自適應布局的4個概念/87

5.1.2 Universal故事板/87

5.1.3 Size類/96

5.1.4 自適應字型/100

5.1.5 設備相關圖片/101

5.2 自適應布局進階/102

5.2.1 自適應單元格/102

5.2.2 自動安裝視圖/108

5.2.3 UITraitCollection類/119

5.2.4 覆蓋Size類/121

5.2.5 Size相關圖片/125

5.2.6 顯示/隱藏導航欄/127

5.2.7 UIAppearance和Size類/128

第6章 UISplitViewController及旋屏/130

6.1 創建UISplitViewController套用/131

6.2 在iPhone App中使用UISplitViewController/140

6.2.1 創建Detail默認視圖/140

6.2.2 在iPhone中展開UISplitViewController/143

6.2.3 記住用戶選擇/151

6.2.4 單元格指示器/154

6.2.5 對iPad進行適應/159

6.3 旋屏/162

6.3.1 舊的旋屏方法被廢棄/162

6.3.2 自定義旋屏效果/165

6.3.3 單元格自適應大小/167

6.3.4 iPad旋屏/169

6.3.5 自適應的UILabel/176

第7章 視圖控制器的呈現/180

7.1 初始項目/181

7.2 內置的Presentation Controller/182

7.2.1 UIAlertController/183

7.2.2 UIPopoverPresentationController/186

7.2.3 UISearchController/191

7.3 自定義UIPresentationController/196

7.3.1 Presented控制器和Presenting控制器/196

7.3.2 創建基本的PresentationController/197

7.3.3 自定義轉換動畫/200

7.3.4 高級定製/206

第8章 今日擴展/215

8.1 App擴展介紹/215

8.1.1 App擴展的類型/216

8.1.2 理解App擴展/219

8.2 今日擴展綜述/223

8.2.1 介紹今日擴展/223

8.2.2 WeatherWidget示例/223

8.2.3 討論/240

第9章 分享擴展/242

9.1 案例項目:SinaWeiboShare/242

9.1.1 實現容器App/243

9.1.2 創建分享擴展/257

9.2 討論/267

9.2.1 配置SLComposeSheetConfigurationItem/268

9.2.2 分享其他檔案/268

第10章 動作擴展/269

10.1 案例項目:SearchInICIBA/269

10.1.1 實現容器App/270

10.1.2 創建動作擴展/272

10.2 討論/280

第11章 照片編輯擴展/281

11.1 案例項目:PhotoVintage/281

11.1.1 實現容器App/282

11.1.2 實現照片編輯擴展/282

11.2 討論/292

第12章 文檔提供者擴展/294

12.1 準備/295

12.1.1 工作機制/295

12.1.2 文檔提供者擴展支持的4種操作/296

12.2 Bmob雲服務/297

12.2.1 註冊Bmob/297

12.2.2 創建套用/297

12.2.3 獲取App Key/298

12.2.4 Bmob SDK/299

12.3 開始/299

12.3.1 添加擴展App/299

12.3.2 配置Info.plist和entitlements/300

12.4 加入Bmob SDK框架/301

12.4.1 添加CocoaPods框架/301

12.4.2 橋接頭檔案/304

12.4.3 上傳圖片到Bmob/305

12.4.4 實現Document Picker/308

12.4.5 實現宿主App/314

12.4.6 實現File Provider/319

12.5 討論/322

第13章 鍵盤擴展/323

13.1 準備/323

13.2 鍵盤擴展的限制/323

13.3 值得信任/324

13.4 網路訪問/325

13.5 開始/326

13.5.1 創建鍵盤擴展/326

13.5.2 顯示鍵盤/327

13.5.3 設計按鈕及布局/329

13.6 實現KeyboardViewController/331

13.6.1 創建連線/331

13.6.2 實現按鍵處理/332

13.6.3 大小寫轉換/334

13.6.4 切換符號集/335

13.6.5 按鍵動畫/336

13.6.6 鍵盤最終運行效果/336

13.7 討論/337

第14章 CloudKit/338

14.1 準備/339

14.1.1 用戶授權/339

14.1.2 iCloud容器/340

14.1.3 資料庫/340

14.1.4 Zone/340

14.1.5 記錄/341

14.1.6 訂閱/341

14.2 開始/342

14.2.1 打開iCloud/342

14.2.2 程式主界面/343

14.2.3 全局對象/344

14.2.4 獲取用戶ID及姓名/345

14.2.5 將數據封裝為CKRecord/350

14.2.6 上傳照片/353

14.2.7 查看已經上傳的圖片/359

14.3 高級API/361

14.3.1 不完全抓取/362

14.3.2 分頁抓取/363

14.3.3 抓取並快取圖片/367

14.3.4 錯誤處理及網路重試/371

14.3.5 CloudKit Dashboard/372

14.4 討論/373

第15章 Photos框架/375

15.1 Photos初步/375

15.1.1 模型對象/376

15.1.2 抓取概述/376

15.1.3 檢索內容/377

15.1.4 初始項目/377

15.1.5 獲取用戶授權/378

15.1.6 抓取/379

15.1.7 顯示圖片/384

15.1.8 快取/387

15.1.9 標記用戶選擇/390

15.2 Photos進階/392

15.2.1 API介紹/393

15.2.2 初始項目/394

15.2.3 創建新的拼接圖/396

15.2.4 顯示拼接圖/400

15.2.5 收藏和刪除/403

15.2.6 增加修訂記錄/405

15.2.7 讀取修訂記錄/406

15.2.8 註冊變更通知/409

15.2.9 監聽變更通知/409

15.2.10 讓SpliceListVC處理變更通知/411

15.2.11 讓PhotoPicker處理變更通知/413

15.3 討論/414

第16章 Handoff/415

16.1 Handoff基礎/416

16.2 開始/416

16.2.1 Handoff兼容性/417

16.2.2 測試Handoff/418

16.2.3 初始項目/419

16.2.4 設定Team ID/420

16.2.5 添加活動類型/421

16.3 view活動/422

16.3.1 創建活動並開始廣播/422

16.3.2 更新用戶活動/423

16.3.3 停止廣播/423

16.4 edit活動/424

16.4.1 創建活動並開始廣播/424

16.4.2 更新用戶活動/425

16.4.3 停止廣播/425

16.5 恢復用戶活動/426

16.5.1 在應用程式委託中接收Handoff廣播/426

16.5.2 恢復view活動/428

16.5.3 恢復edit活動/429

16.6 討論/430

第17章 WebKit/432

17.1 開始/433

17.1.1 初始項目/433

17.1.2 創建WKWebView實例/433

17.1.3 載入Web頁/434

17.1.4 監視頁面載入進度/434

17.1.5 頁面導航/436

17.1.6 WKNavigationDelegate協定/436

17.2 WebKit進階/439

17.2.1 腳本調試工具/439

17.2.2 隱藏網頁內容/440

17.2.3 抓取頁面內容/444

17.2.4 顯示PopoverController/448

17.3 討論/450

第18章 Living Rendering/452

18.1 Living Rendering初步/453

18.1.1 開啟Living Redering特性/453

18.1.2 暴露@IBInspectable屬性/454

18.1.3 繪製boxLayer層/456

18.1.4 繪製markLayer層/457

18.1.5 繪製文本圖層/459

18.2 Living Rendering進階/461

18.2.1 使用點陣圖/461

18.2.2 回響事件/462

18.3 討論/463

第19章 Visual Effects/464

19.1 Visual Effects初步/464

19.1.1 初始項目/465

19.1.2 使用Visual Effect View實現模糊特效/465

19.1.3 使用Visual Effect View實現Vibrancy效果/467

19.2 Visual Effects進階/469

19.2.1 使用UIBlurEffect實現模糊效果/469

19.2.2 使用UIVibrancyEffect實現Vibrancy效果/471

……

相關詞條

相關搜尋

熱門詞條

聯絡我們