編輯推薦
《iOS編程(第2版)》有兩個特點:
首先、涵蓋iOS應用開發必備知識:從Objective-C基礎知識到新語言特性,從AppKit庫到常見的Cocoa設計模式,從Xcode技巧到Instruments,不一而足。
第二、指導讀者以正確的方法解決問題:Objective-C的習慣約定有哪些(例如命名約定,內存管理約定),創建子類時如何處理初始化方法,Cocoa的常見設計模式有哪些,如何選擇數據保存方法……iOS開發包括iPhone開發、iPod touch開發和iPad開發,書中絕大部分內容可通用,有差異的部分(例如iPad界麵)單獨予以說明。本書使用新的iOS SDK,包括4.1版本的Xcode。雖然iOS SDK一直在升級,但本書翻譯完成之際,與SDK有關的內容仍然有效。
內容簡介
《iOS編程(第2版)》涵蓋瞭開發iOS應用的方方麵麵。從Objective-C基礎知識到新增加的語言特性;從AppKit庫到常見的Cocoa設計模式;從Xcode技巧到Instrumentst等。如果讀者剛接觸iOS編程,閱讀本書前兩章可以快速入門。如果讀者已經有iOS編程經驗,閱讀本書可以拾遺補缺。本書的另一個特色是教讀者以正確的方法解決問題。Objective-C的習慣約定有哪些(例如命名約定,內存管理約定),創建子類時如何處理初始化方法,Cocoa的常見設計模式有哪些,如何選擇數據保存方法等。這些問題,如果讀者自己摸索,難免費時費力。本書已經將這些知識整理、歸納並清楚地呈現在讀者麵前。
作者簡介
Joe Conway是Big Nerd Ranch的資深教師,自iOS平颱發布以來一直從事相關的谘詢服務。Joe畢業於美國威斯康辛大學,在Mac OS X早期即開始編寫Objective-C和Cocoa代碼。他編寫瞭Big Nerd Ranch的“iOS新手培訓課程”教材。該教材廣受好評,是本書的原型。
Aaron Hillegass曾就職於NeXT公司和蘋果公司,目前在Big Nerd Ranch教授iOS編程課程。Aaron在NeXT時編寫瞭第一本OpenStep教材(OpenStep是Cocoa的前身)。本書以Big Nerd Ranch的教學課程為基礎,涵蓋瞭近20年OpenStep和Cocoa的開發成果。
目錄
Table of Contents
簡介
本書適閤哪些讀者
第二版有哪些更新?
教學理念
如何使用本書
本書是如何組織的
代碼風格
版式說明
開發所需的硬件與軟件
第1章 第一個簡單的iOS應用
1.1 創建Xcode項目
1.2 創建界麵
1.3 模型-視圖-控製器
1.4 聲明
聲明實例變量
聲明方法
1.5 創建關聯
設置指針
設置目標(target)和動作(action)
關聯小結
1.6 實現方法
1.7 針對模擬器構建並運行應用
1.8 安裝應用
1.9 應用圖標
1.10 啓動圖片
第2章 Objective-C
2.1 對象
2.2 使用實例
創建對象
發送消息
釋放對象
2.3 編寫命令行工具RandomPossessions
NSString
NSArray與NSMutableArray
2.4 子類化Objective-C類
實例變量
存取方法
實例方法
初始化方法
其他初始化方法與初始化方法鏈
類方法
測試子類 5
2.5 異常與控製颱窗口
2.6 快速枚舉
2.7 練習
第3章 內存管理
3.1 內存管理基礎
C語言的內存管理
通過對象管理內存
3.2 引用計數
使用retain計數
使用autorelease
存取方法和內存管理
實現dealloc
通過屬性機製簡化存取方法
copy和mutableCopy
Retain計數規則
3.3 深入學習:再談內存管理
第4章 委托機製與Core Location
4.1 項目、目標和框架
4.2 Core Location
通過CLLocationManager獲取更新數據
4.3 委托機製
協議
協議方法
委托機製、控製器對象和內存管理
4.4 使用調試器
4.5 練習:方位
4.6 深入學習:構建階段、編譯器錯誤和連接器錯誤
預處理(Preprocessing)
編譯
連接
第5章 MapKit與文本輸入
5.1 對象圖
5.2 MapKit框架
5.3 界麵屬性
5.4 設置MapView對象的委托對象
使用文檔
創建MKAnnotation子類
標記位置
完成Whereami
5.5 練習:擴充標注
5.6 練習:根據地理位置獲取城市信息
第6章 創建UIView子類
6.1 創建自定義視圖
drawRect:方法
創建UIView實例
6.2 繪製文字和陰影
6.3 使用UIScrollView
6.4 實現縮放功能
6.5 隱藏狀態條
6.6 練習:顔色
6.7 深入學習:Retain循環
6.8 深入學習:重畫視圖
第7章 視圖控製對象
7.1 視圖控製對象與XIB文件
7.2 使用視圖控製對象
創建UITabBarController對象
創建視圖控製對象和標簽項
為視圖控製對象創建視圖
深入淺齣XIB:介紹文件所有者
7.3 視圖的顯示和消失
7.4 視圖控製對象的生命周期與內存過低警告
7.5 UIViewController子類與模闆
7.6 練習:地圖標簽
第8章 方嚮感應器
8.1 設置方嚮感應器
8.2 獲取方嚮感應器數據
8.3 加速方嚮與加速數值
8.4 使用加速感應器數據
8.5 使加速感應器數據更“平滑”
8.6 偵測搖動
8.7 練習:改變顔色
8.8 深入學習:濾波與頻率
8.9 深入學習:Retina顯示屏
第9章 通告機製與設備轉動
9.1 通告中心
9.2 UIDevice通告
9.3 自動轉屏
用代碼設置自動縮放掩碼與按位運算符
9.4 強製使用橫排模式
9.5 練習:設備近身通告
深入學習:覆蓋自動轉屏
第10章 UITableView與UITableViewController
10.1 編寫Homepwner應用
10.2 UITableViewController
創建UITableViewController子類
10.3 UITableView數據源
PossessionStore:單實例對象
實現數據源方法
10.4 UITableViewCell對象
創建並獲取UITableViewCell對象
重用UITableViewCell對象
10.5 代碼片段庫
10.6 練習:錶格段
第11章 編輯UITableView
11.1 編輯模式
11.2 增加行
11.3 刪除行
11.4 移動行
第12章 UINavigationController
12.1 UINavigationController
UINavigationBar
12.2 加入額外的UIViewController
12.3 UINavigationController的導航功能
將視圖控製對象壓入棧
視圖控製對象之間的數據傳遞
視圖的顯示和消失
12.4 練習:數字鍵盤(Number Pad)
第13章 相機
13.1 通過UIImageView顯示圖片
通過UIImagePickerController拍攝照片
ImageStore
NSDictionary
創建並使用鍵
隱藏鍵盤
13.2 練習:刪除圖片
13.2 深入:攝像
第14章 UIPopoverController與模態視圖控製對象
14.1 將Homepwner改寫為通用應用
14.2 UIPopoverController
14.3 模態視圖控製對象
關閉模態視圖控製對象
模式視圖控製對象的樣式
編寫視圖控製對象的委托協議
模態視圖控製對象的過渡動畫
第15章 保存、讀取與多任務處理
15.1 應用沙盒
獲取文件路徑
15.2 固化
對象的固化
對象的解固
15.3 應用狀態、狀態切換與多任務處理
15.4 通過NSData保存數據
15.5 再談內存過低警告
15.6 “模型-視圖-控製器-存儲”設計模式
15.7 練習:為Whereami增加固化功能
15.8 深入:應用狀態的切換
15.9 深入:文件係統的讀取和寫入
15.10 深入:程序包
第16章 創建UITableViewCell子類
16.1 創建HomepwnerItemCell
創建子視圖
子視圖的布局
使用UITableViewCell子類對象
16.2 處理圖片
16.3 練習:輔助指示視圖
16.4 練習:縮小原圖
第17章 Core Data
17.1 對象-關係映射
17.2 用Core Data重寫PossessionStore的數據保存功能
模型文件
NSManagedObject與NSManagedObject子類
更新PossessionStore
為Homepwner增加AssetType功能
17.3 再談SQL
17.4 各種保存機製的優缺點
17.5 練習:增加AssetType對象
17.6 練習:AssetType對象的iPad界麵
第18章 本地化
18.1 通過NSLocale實現國際化
18.2 資源的本地化
18.3 NSLocalizedString與字符串對照錶
18.4 練習:增加一套本地化資源
18.5 深入:NSBundle在國際化中的作用
第19章 設置
19.1 更新Whereami
19.2 NSUserDefaults
19.3 深入:“設置”應用
第20章 觸摸事件與UIResponder
20.1 觸摸事件
20.2 創建TouchTracker應用
20.3 處理觸摸事件並創建綫條對象
20.4 響應對象鏈
20.5 練習:保存和讀取
20.6 練習:圓圈
20.7 深入學習:UIControl
第21章 Instruments
21.1 靜態分析器
21.2 Instruments
21.3 Allocations組件
Allocations組件的設置選項
內存堆快照分析
Time Profiler組件
21.3 Xcode方案
創建新方案
21.4 構建設置
第22章 Core Animation Layer
22.1 層與視圖的關係
22.2 創建CALayer對象
22.3 層的顯示內容
22.4 隱式可動畫屬性
22.5 深入:通過代碼生成顯示內容
22.6 深入:層、位圖與上下文
22.7 練習:動態生成層的顯示內容
第23章 通過CAAnimation控製動畫
23.1 動畫對象
23.2 通過CABasicAnimation實現鏇轉動畫
速度控製函數
動畫結束後的處理
23.3 通過CAKeyframeAnimation實現彈跳動畫
23.4 練習:更多動畫效果
23.5 深入:外觀層和模型層
第24章 Block對象與範疇
24.1 為TouchDrawView上色
24.2 Block對象
Block對象與變量
捕獲變量
通過其他內建的方法使用Block對象
通過Block對象保持代碼的短小精練
24.3 範疇
24.4 深入學習:內存管理與Block對象
24.5 深入學習:比較多種迴調機製實現途徑的優缺點
第15章 Web服務與UIWebView
25.1 Web服務
編寫Nerdfeed
從指定的URL獲取數據
使用NSURLConnection
解析XML數據
日誌輸齣技巧
25.2 UIWebView
25.3 深入學習:NSXMLParser
25.4 深入學習:HTTP請求主體
25.5 深入學習:認證信息
25.6 練習:解析並顯示更多數據
25.7 練習:加強UIWebView
第26章 UISplitViewController
26.1 在Nerdfeed中使用UISplitViewController
26.2 主、從視圖控製對象間的通信
26.3 在竪排模式下顯示主視圖控製對象
26.4 將Nerdfeed改寫為通用應用
第27章 多媒體播放與後颱運行
27.1 創建MediaPlayer應用
27.2 係統聲音
注冊係統聲音
播放係統聲音
27.3 播放壓縮格式的音頻文件
27.4 播放視頻文件
MPMoviePlayerViewController
視頻文件的預讀
27.5 後颱運行
後颱運行規則
其他形式的後颱運行
27.6 底層API
27.7 練習:錄音
第15章 Bonjour與Web服務端
28.1 Bonjour
創建CocoaServer
發布Bonjour服務
通過Bonjour查找服務
28.2 HTTP通信
用Objective-C編寫Web服務端
獲取服務端的網絡地址信息
字節序
創建服務請求
接收Web請求
28.3 深入學習:TXTRecords
第29章 推送通知與網絡編程
29.1 設置客戶端,為接收推送通知做準備
注冊客戶端
創建並設置針對推送通知的provisioning profile
29.2 投遞推送通知
嚮provider發送設備token
29.3 發送推送通知
通過NSStream和Apple服務器創建網絡連接
通過NSStream建立網絡連接
為Apple服務器提供數據
處理投遞錯誤
再談針對流連接的數據讀取
29.4 幾種額外的客戶端通知處理機製
聲音和圖標標記
通過推送通知傳送自定義數據
29.5 正式的通知服務器以及其他發布事宜
29.6 深入學習:反饋服務
第30章 後記
30.1 接下來做什麼
30.2 結束語
索引
iOS編程(第2版) 下載 mobi epub pdf txt 電子書 格式