編輯推薦
世界知名iOS開發專傢Erica Sadun的全新打造;
OS開發領域扛鼎之作,全麵涵蓋iOS開發細節;
特色:
通過多點觸控和手勢(包括自定義的手勢識彆器)來支持用戶直接輸入;
構建、自定義和使用iOS 6控件;
通過彈齣式對話框、進度條、本地通知、彈齣信息、音頻鈴聲和其他技術來提醒用戶;
組裝視圖和動畫,組織視圖層次,理解視圖如何協同工作;
使用iOS 6突破性的自動布局約束係統來簡化對多個屏幕尺寸的支持;
控製鍵盤,是屏幕上的元素識彆文本,以及有效地掃描和格式化文本;
使用視圖控製器來組織用戶的工作區;
管理照片、視頻、電子郵件、文本消息,以及iOS 6增強的社交媒體更新;
實現VoiceOver的可訪問性,把受眾擴展到更多的用戶;
使用錶格來簡單直觀地管理app,以及使用全新的iOS 6集閤視圖來添加靈活性;
使用Core Data托管數據存儲;
使用iOS 6強大的聯網能力以及支持的Web服務。
內容簡介
《iOS 6核心開發手冊(第4版)》是市麵上最暢銷的iOS開發圖書的全新升級版本,以蘋果最新發布的iOS 6為基礎編寫而成。
《iOS 6核心開發手冊(第4版)》通過源自真實世界的案例和代碼解決方案講解瞭iPhone和iPad應用開發過程中用到的所有知識,其內容涵蓋瞭iPhone、iPad應用開發的核心技術要點,以及iOS開發在真實商業開發中所需要的所有主題。
《iOS 6核心開發手冊(第4版)》適閤對iOS開發感興趣的人員閱讀。
作者簡介
Erica Sadun,數十本暢銷書的作者、閤著者和供稿者,這些書涉及程序設計、數字視頻、數字攝影、Web設計和其他技術主題。作為一名在iOS領域最負盛名的開發人員,她還開發瞭數十種iPhone自帶的應用。Sadun持有佐治亞理工學院計算機科學專業的博士學位。
目錄
第1章 姿勢和觸摸
1.1 觸摸
1.1.1 階段
1.1.2 觸摸和響應者方法
1.1.3 觸摸視圖
1.1.4 多觸摸
1.1.5 姿勢識彆器
1.2 秘訣:添加簡單的直接操作界麵
1.3 秘訣:添加平移姿勢識彆器
1.4 秘訣:同時使用多個姿勢識彆器
1.5 秘訣:約束移動
1.6 秘訣:測試觸摸
1.7 秘訣:針對位圖進行測試
1.8 秘訣:在屏幕上繪製觸摸
1.9 秘訣:平滑繪圖
1.10 秘訣:使用多觸摸交互
1.11 秘訣:檢測圓形
1.12 創建自定義的姿勢識彆器
1.13 秘訣:從滾動視圖中拖動
1.14 秘訣:實時觸摸反饋
1.14.1 啓用觸摸反饋
1.14.2 截取和轉發觸摸事件
1.14.3 實現TOUCHkit疊加視圖
1.15 秘訣:給視圖添加菜單
1.16 小結
第2章 構建和使用控件
2.1 UIControl類
2.1.1 目標-動作
2.1.2 控件的種類
2.1.3 控件事件
2.2 按鈕
2.3 Interface Builder中的按鈕
2.4 秘訣:構建按鈕
2.4.1 多行按鈕文本
2.4.2 給按鈕添加動畫式元素
2.4.3 給按鈕添加額外的狀態
2.5 秘訣:製作按鈕響應的動畫
2.6 秘訣:添加具有自定義指針的滑塊
2.6.1 自定義UISlider
2.6.2 提高效率
2.7 外觀代理
2.8 秘訣:創建可點按兩次的分段控件
2.8.1 第二次點按反饋
2.8.2 控件和屬性
2.9 處理選項開關和步進器
2.10 子類化UIControl
2.10.1 創建控件
2.10.2 跟蹤觸摸
2.10.3 調度事件
2.11 秘訣:構建星星滑塊
2.12 構建觸摸式轉盤
2.13 秘訣:創建拉式控件
2.13.1 可發現性
2.13.2 測試觸摸
2.14 構建自定義的鎖定控件
2.15 添加頁麵指示控件
2.16 秘訣:創建可自定義的分頁滾動條
2.17 構建工具欄
2.18 小結
第3章 提醒用戶
3.1 通過警報直接與用戶交流
3.1.1 構建簡單的警報
3.1.2 警報委托
3.1.3 顯示警報
3.1.4 警報的種類
3.2 “請等待”:給用戶顯示進度
3.2.1 使用UIActivityIndicatorView
3.2.2 使用UIProgressView
3.3 秘訣:不帶按鈕的警報
3.4 秘訣:利用事件處理循環創建模態警報
3.5 秘訣:結閤使用可變參數與警報視圖
3.6 展示選項列錶
3.6.1 滾動菜單
3.6.2 在動作錶中顯示文本
3.7 秘訣:構建自定義的疊加
3.8 秘訣:基本的彈齣窗口
3.9 秘訣:本地通知
3.10 警報指示器
3.11 秘訣:簡單的音頻警報
3.11.1 係統聲音
3.11.2 振動
3.11.3 警報
3.11.4 延遲
3.11.5 係統聲音的處理
3.12 小結
第4章 組閤視圖與動畫
4.1 視圖層次結構
4.2 秘訣:恢復視圖層次結構樹
4.3 秘訣:查詢子視圖
4.4 管理子視圖
4.4.1 添加子視圖
4.4.2 重新排序和刪除子視圖
4.4.3 視圖迴調
4.5 標記和檢索視圖
4.6 秘訣:通過對象關聯命名視圖
4.7 視圖幾何學
4.7.1 框架
4.7.2 矩形實用函數
4.7.3 點和大小
4.7.4 變換
4.7.5 坐標係統
4.8 秘訣:處理視圖框架
4.8.1 調整大小
4.8.2 CGRect和Center
4.8.3 其他幾何元素
4.9 秘訣:獲取變換信息
4.9.1 獲取變換屬性
4.9.2 測試視圖交叉
4.10 顯示和交互特徵
4.11 UIView動畫
4.12 秘訣:淡入和淡齣視圖
4.13 交換視圖
4.14 秘訣:翻轉視圖
4.15 秘訣:使用Core Animation漸變
4.16 秘訣:在視圖齣現時彈起它們
4.17 圖像視圖動畫
4.18 小結
第5章 視圖約束
5.1 約束是什麼
5.2 對齊矩形
5.3 約束屬性
5.4 約束的法則
5.5 創建約束
5.5.1 基本的約束聲明
5.5.2 可視化的格式約束
5.5.3 變量綁定
5.6 格式字符串
5.6.1 方嚮
5.6.2 視圖名稱
5.6.3 連接
5.7 謂詞
5.7.1 指標
5.7.2 視圖之間的謂詞
5.7.3 優先級
5.8 格式字符串小結
5.9 存儲和更新約束
5.10 秘訣:比較約束
5.11 秘訣:描述約束
5.12 秘訣:創建固定大小的受約束的視圖
5.12.1 禁用自動調整大小約束
5.12.2 在視圖界限內開始
5.12.3 約束大小
5.13 秘訣:居中顯示視圖
5.14 秘訣:設置高寬比
5.15 對齊視圖和靈活地調整大小
5.16 秘訣:響應方嚮變化
5.17 約束宏
5.17.1 一緻的約束
5.17.2 充分的約束
5.17.3 宏
5.18 調試約束
5.19 小結
第6章 文本輸入
6.1 秘訣:取消UITextField鍵盤
6.1.1 阻止鍵盤取消
6.1.2 文本特徵屬性
6.1.3 其他文本框屬性
6.2 秘訣:利用自定義的附件視圖代替文本視圖
6.3 秘訣:調整鍵盤周圍的視圖
6.4 秘訣:調整附件視圖周圍的視圖
6.5 秘訣:創建自定義的輸入視圖
6.6 秘訣:創建能夠意識到文本輸入的視圖
6.7 秘訣:嚮非文本視圖中添加自定義的輸入視圖
6.8 秘訣:構建更好的文本編輯器(第1部分)
6.9 秘訣:構建更好的文本編輯器(第2部分)
6.9.1 啓用屬性化的文本
6.9.2 控製屬性
6.9.3 其他的響應者功能
6.10 秘訣:文本輸入過濾
6.11 秘訣:檢測文本模式
6.11.1 創建你自己的錶達式
6.11.2 枚舉正則錶達式
6.11.3 數據檢測器
6.11.4 使用內置的類型檢測器
6.11.5 有用的網站
6.12 檢測UITextView中的拼寫錯誤
6.13 搜索文本字符串
6.14 小結
第7章 視圖控製器的使用
7.1 視圖控製器
7.1.1 UIViewController類
7.1.2 導航控製器
7.1.3 選項卡欄控製器
7.1.4 拆分視圖控製器
7.1.6 頁麵視圖控製器
7.1.7 彈齣式控製器
7.2 使用導航控製器和拆分視圖的開發
7.2.1 使用導航控製器和堆棧
7.2.2 壓入和彈齣視圖控製器
7.2.3 欄按鈕
7.3 秘訣:導航項類
7.3.1 標題和返迴按鈕
7.3.2 宏
7.4 秘訣:模態展示
7.5 秘訣:構建拆分視圖控製器
7.6 創建通用拆分視圖/導航應用
7.7 秘訣:選項卡欄
7.8 記憶選項卡狀態
7.9 秘訣:頁麵視圖控製器
7.9.1 書籍屬性
7.9.2 包裝實現
7.9.3 探索秘訣
7.9.4 構建展示索引
7.10 秘訣:在頁麵視圖控製器中颳擦頁麵
7.11 秘訣:自定義容器
7.11.1 添加與移除子視圖控製器
7.11.2 在視圖控製器之間過渡
7.12 秘訣:延續
7.13 小結
第8章 常用控製器
8.1 圖片選取器控製器
8.1.1 圖片源
8.1.2 在iPhone和iPad上展示選取器
8.2 秘訣:選擇圖片
8.2.1 怎麼做:給模擬器添加照片
8.2.2 Assets Library(資産庫)框架
8.2.3 展示一個選取器
8.2.4 處理委托迴調
8.3 秘訣:拍攝照片
8.3.1 設置選取器
8.3.2 顯示圖片
8.3.3 將圖片保存到相簿
8.4 秘訣:錄製視頻
8.4.1 創建視頻錄製選取器
8.4.2 保存視頻
8.5 秘訣:使用媒體播放器播放視頻
8.6 秘訣:編輯視頻
8.7 秘訣:選取並編輯視頻
8.8 秘訣:通過郵件發送圖片
8.9 發送文本信息
8.10 秘訣:貼齣社交更新
8.11 秘訣:活動視圖(Activity View)控製器
8.11.1 創建並展示控製器
8.11.2 添加服務
8.11.3 項目和服務
8.12 秘訣:Quick Look預覽控製器
8.13 小結
第9章 可訪問性
9.1 可訪問性簡介
9.2 啓用可訪問性
9.3 特徵(Trait)
9.4 標簽
9.5 提示
9.6 使用模擬器測試
9.7 廣播更新
9.8 在iPhone上測試可訪問性
9.9 小結
第10章 創建與管理錶格視圖
10.1 iOS錶格
10.2 委托
10.3 創建錶
10.3.1 錶格風格
10.3.2 視圖布局
10.3.3 指派數據源
10.3.4 給單元格提供服務
10.3.5 注冊單元格類
10.3.6 單元格齣列
10.3.7 指派委托
10.4 秘訣:實現一個基本的錶格
10.4.1 數據源方法
10.4.2 響應用戶碰觸
10.5 錶格視圖單元格
10.5.1 選中的顔色
10.5.2 添加自定義選擇特徵
10.6 秘訣:創建復選錶格單元格
10.7 使用展開附件
10.8 秘訣:錶格編輯
10.8.1 添加撤銷支持
10.8.2 支持撤銷
10.8.3 顯示移除控件
10.8.4 處理刪除請求
10.8.5 輕掃單元格
10.8.6 重新排列單元格
10.8.7 添加單元格
10.9 秘訣:使用節
10.9.1 構建節
10.9.2 節數和行數
10.9.3 返迴單元格
10.9.4 創建頭部標題
10.9.5 自定義頭部和腳注
10.9.6 創建節索引
10.9.7 處理節不匹配
10.9.8 帶有節的委托
10.10 秘訣:搜索錶格
10.10.1 創建搜索顯示控製器
10.10.2 為搜索顯示控製器注冊單元格
10.10.3 構建可搜索的數據源方法
10.10.4 委托方法
10.10.5 使用搜索感知的索引
10.11 秘訣:給錶格添加下拉刷新功能
10.12 添加動作行
10.13 編寫自定義組錶格的代碼
10.14 秘訣:構建多滾輪錶格
10.14.1 創建UIPickerView
10.14.2 數據源和委托方法
10.14.3 結閤選取器使用視圖
10.15 使用UIDatePicker
10.16 小結
第11章 集閤視圖
11.1 集閤視圖與錶格的對比
11.2 建立集閤視圖
11.2.1 控製器
11.2.2 視圖
11.2.3 數據源和委托
11.3 流布局
11.3.1 滾動方嚮
11.3.2 項目尺寸和綫間距
11.3.3 頭部和腳注的尺寸
11.3.4 嵌空
11.4 秘訣:基本的集閤視圖流
11.5 秘訣:自定義單元格
11.6 秘訣:滾動水平列錶
11.7 秘訣:引入交互式布局效果
11.8 秘訣:滾動對齊
11.9 秘訣:創建圓形布局
11.9.1 創建與刪除的動畫
11.9.2 給圓形布局提供能量
11.9.3 布局
11.10 秘訣:給布局添加手勢
11.11 秘訣:創建真正的網格布局
11.12 秘訣:自定義項目菜單
11.13 小結
第12章 初嘗Core Data
12.1 Core Data導引
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.4.4 執行提取
12.5 移除對象
12.6 秘訣:使用Core Data作為錶格數據源
12.6.1 索引路徑訪問
12.6.2 節鍵路徑
12.6.3 節組
12.6.4 索引標題
12.6.5 錶格的備妥程度
12.7 秘訣:搜索錶格和Core Data
12.8 給Core Data錶格視圖添加編輯功能
12.8.1 添加撤消/重做支持
12.8.2 創建撤銷事務
12.8.3 重新思考編輯
12.9 秘訣:由Core Data提供能量的集閤視圖
12.10 小結
第13章 網絡基礎
13.1 秘訣:檢查網絡狀態
13.2 掃描連接性更改
13.3 秘訣:同步下載
13.4 秘訣:異步下載
13.5 一次調用無反饋異步下載
13.6 秘訣:使用JSON序列化
13.7 秘訣:將XML轉換成樹
13.7.1 樹
13.7.2 構建分析樹
13.8 小結
附錄A Objective-C文字常量
A.1 數字
A.2 裝箱
A.3 枚舉
A.4 容器文字常量
A.5 下標
A.6 功能測試
前言/序言
揭秘 iOS 6 移動應用開發:架構、設計與實踐 本書旨在為渴望深入理解 iOS 6 平颱下移動應用開發的讀者提供一份詳盡的技術指南。我們不局限於錶麵API的羅列,而是著眼於構建堅實、可維護且高性能的應用所必需的核心概念、架構模式和高級技術。通過對 iOS 6 核心框架的深度剖析,以及貫穿其中的實踐性示例,本書將幫助您從容應對復雜的開發挑戰,打造齣色的用戶體驗。 第一部分:iOS 6 核心架構與基礎 第一章:iOS 6 操作係統概覽與開發環境搭建 本章將為您勾勒齣 iOS 6 操作係統的宏觀圖景,介紹其關鍵組件、生命周期以及與硬件的交互方式。我們將詳細指導您如何配置一個高效的 Xcode 開發環境,包括 Xcode 的安裝、模擬器的使用,以及與 iOS 設備連接的設置。瞭解開發工具鏈是高效開發的第一步,我們將從基礎入手,確保您能夠順利地啓動項目並進行調試。 第二章:Objective-C 語言精髓與 ARC 內存管理 Objective-C 作為 iOS 開發的基石,其獨特的麵嚮對象特性和消息傳遞機製是理解 iOS 框架的關鍵。本章將深入探討 Objective-C 的核心概念,包括類、對象、協議、類彆、繼承以及消息轉發。我們將重點關注自動引用計數(ARC)這一重要的內存管理機製,詳細解釋其工作原理,講解如何通過 ARC 有效避免內存泄漏和野指針問題,從而編寫更穩定、更健壯的代碼。 第三章:Cocoa Touch 框架導覽與核心類 Cocoa Touch 是 iOS 應用開發的強大框架。本章將為您全麵介紹 Cocoa Touch 的主要組成部分,包括 UIKit、Foundation、Core Graphics、Core Animation 等。我們將重點剖析 UIKit 中的核心類,如 UIApplication、UIWindow、UIViewController、UIView,以及它們在應用生命周期管理、視圖層級構建和用戶交互處理中的作用。理解這些核心類的職責和交互方式,是構建任何 iOS 應用的基礎。 第四章:視圖控製器(UIViewController)生命周期與管理 視圖控製器是 iOS 應用中管理視圖層次結構和用戶交互的核心單元。本章將深入解析 UIViewController 的完整生命周期,從初始化、加載、顯示到消失、銷毀的每一個階段。我們將詳細講解 `viewDidLoad`、`viewWillAppear`、`viewDidAppear`、`viewWillDisappear`、`viewDidDisappear` 等關鍵生命周期方法的作用,以及如何在不同生命周期階段執行適當的邏輯,如數據加載、資源釋放、動畫設置等。此外,我們還將探討視圖控製器之間的導航模式,包括 Navigation Controller 和 Tab Bar Controller 的使用。 第五章:視圖(UIView)與視圖層級結構 視圖是構成用戶界麵的基本元素。本章將聚焦於 UIView 類及其子類,講解如何創建、配置和布局視圖。我們將深入理解視圖的坐標係、邊界(bounds)和位置(frame)概念,以及如何在視圖層級結構中添加、移除和管理子視圖。重點關注 Auto Layout 這一強大的約束布局係統,學習如何使用它來創建適應不同屏幕尺寸和方嚮的靈活界麵。同時,還將介紹一些常用的 UIKit 視圖組件,如 UILabel、UIButton、UIImageView、UITextField 等。 第二部分:iOS 6 應用設計與高級技術 第六章:事件處理與用戶交互 響應用戶的輸入是任何交互式應用的核心。本章將深入講解 iOS 的事件處理機製,包括事件的産生、傳遞和響應。我們將詳細介紹觸摸事件(包括單點觸摸、多點觸摸和拖動手勢)、動作消息(actions)、目標-動作(target-action)模式,以及如何使用手勢識彆器(Gesture Recognizers)來處理更復雜的交互。理解事件傳遞鏈(responder chain)對於正確處理用戶輸入至關重要。 第七章:數據持久化策略與選擇 在移動應用開發中,數據的持久化是必不可少的。本章將詳細介紹 iOS 平颱提供的多種數據持久化方案,包括: UserDefaults: 適用於存儲少量用戶偏好設置。 文件係統: 講解如何使用 NSFileManager 進行文件讀寫,適用於存儲非結構化數據。 Core Data: 這是一個強大的對象圖管理和持久化框架,適用於管理大量結構化數據,我們將深入探討其模型創建、獲取、更新和刪除數據的操作。 Realm: 作為一種輕量級的移動數據庫,Realm 提供瞭高性能和易用性,本章將介紹其在 iOS 6 中的集成和基本使用。 SQLite: 直接使用 SQLite 數據庫,提供更底層的控製和更高的性能。 我們將對比各種方案的優缺點,並指導您根據應用的需求選擇最閤適的持久化策略。 第八章:網絡通信與數據獲取 現代移動應用離不開與遠程服務器進行數據交互。本章將深入講解 iOS 的網絡通信技術。我們將詳細介紹 `NSURLConnection` 和 `NSURLSession` 這兩種主要的數據傳輸方式,重點關注 `NSURLSession` 的強大功能,包括請求創建、響應處理、錯誤處理、上傳和下載等。我們將講解如何使用 JSONDecoder 進行 JSON 數據的解析,以及如何處理網絡錯誤和設置超時。此外,還會涉及 RESTful API 的基本概念和實踐。 第九章:多綫程編程與 Grand Central Dispatch (GCD) 為瞭保證用戶界麵的流暢響應,避免阻塞主綫程,多綫程編程是必不可少的。本章將深入講解 iOS 的多綫程模型。我們將詳細介紹 Grand Central Dispatch (GCD) 的概念、優勢和使用方法。我們將講解隊列(Dispatch Queues)的類型(主隊列、全局隊列、並發隊列、串行隊列),以及如何使用 `dispatch_async`、`dispatch_sync`、`dispatch_once` 等函數來執行異步和同步任務。此外,還會探討綫程安全和鎖的使用,以避免數據競爭。 第十章:Core Animation 與動畫效果實現 動畫是提升用戶體驗、增強應用錶現力的重要手段。本章將深入講解 Core Animation 框架,學習如何創建平滑、富有吸引力的動畫效果。我們將詳細介紹 CALayer 的概念,以及如何通過 CABasicAnimation、CAKeyframeAnimation、CAAnimationGroup 等動畫類來控製視圖的各種屬性變化,如位置、大小、透明度、鏇轉等。我們將演示如何創建過渡動畫、屬性動畫,以及如何同步和組閤多個動畫。 第十一章:多媒體處理:音頻與視頻 本章將指導您如何集成和處理音頻與視頻內容。我們將介紹 AVFoundation 框架,講解如何播放音頻文件、錄製音頻、播放視頻、拍攝視頻等。我們將演示如何使用 AVPlayer 進行音視頻播放控製,如何設置播放列錶,以及如何處理播放狀態的改變。 第十二章:地理位置服務與地圖集成 利用用戶的地理位置信息可以為應用增加更多智能化的功能。本章將詳細講解 Core Location 框架,學習如何獲取用戶的當前位置、監聽位置變化、進行地理編碼和反地理編碼。我們還將介紹 MapKit 框架,學習如何在應用中集成地圖視圖,顯示標記點、繪製路綫,以及與地圖進行交互。 第十三章:推送通知(Push Notification)服務 推送通知是與用戶保持聯係、及時傳遞信息的重要方式。本章將詳細講解 Apple 的推送通知服務(APNS)。我們將介紹推送通知的工作原理,包括客戶端(App)和服務器端的配置與交互。我們將演示如何在 Xcode 中配置推送證書、Provisioning Profile,以及如何在服務器端生成和發送推送消息。 第三部分:應用發布與優化 第十四章:內存管理與性能優化 高效的應用不僅要功能完善,更要性能卓越。本章將深入探討 iOS 應用的內存管理和性能優化策略。我們將迴顧 ARC 的高級用法,並講解如何使用 Instruments 工具來檢測內存泄漏、查找性能瓶頸,如CPU使用率過高、UI卡頓等。我們將分享提高應用響應速度、降低內存占用的實用技巧,以及如何優化視圖加載、數據處理和網絡請求。 第十五章:應用測試與調試技巧 編寫高質量的代碼離不開充分的測試。本章將介紹 iOS 應用的測試方法,包括單元測試(Unit Testing)和 UI 測試。我們將講解如何使用 XCTest 框架編寫和運行測試用例。此外,我們將分享 Xcode 中強大的調試工具,包括斷點設置、變量監視、日誌輸齣、視圖調試器等,幫助您快速定位和解決代碼中的錯誤。 第十六章:應用打包、簽名與發布流程 將開發完成的應用推嚮 App Store 是開發過程的最後一步。本章將詳細講解應用打包、簽名和發布到 App Store 的完整流程。我們將介紹 Provisioning Profile、證書、App ID 的概念和管理。我們將指導您如何配置應用圖標、啓動畫麵,以及如何填寫 App Store Connect 中的元數據信息。最後,我們將演示如何使用 Xcode 將應用存檔(Archive)並上傳到 App Store Connect,完成應用的發布。 通過對以上各章內容的深入學習和實踐,相信您將能夠構建齣功能強大、性能優越、用戶體驗卓越的 iOS 6 移動應用程序。本書不僅是您學習 iOS 6 開發的工具書,更是您踏上移動開發徵程的堅實夥伴。