出版時(shí)間:2012-3-20 出版社:華中科技大學(xué)出版社 作者:Joe Conway,Aaron Hillegass 頁(yè)數(shù):544 譯者:夏偉頻,李駿
Tag標(biāo)簽:無(wú)
前言
要成為一名優(yōu)秀的iOS程序員,需要攻克以下三項(xiàng)難題。必須學(xué)會(huì)Objective-C語(yǔ)言。Objective-C是C語(yǔ)言的小巧且簡(jiǎn)單的擴(kuò)展。就能基本掌握的前4章,讀者會(huì)對(duì)Objective-C的相關(guān)知識(shí)。必須掌握Cocoa的常用技術(shù)。其中包括內(nèi)存管理、委托機(jī)制(delegation)、固化機(jī)制(archiving),以及UIViewController的正確使用。理解這些技術(shù)需要花些時(shí)間。本書前半部分會(huì)覆蓋這些內(nèi)容。必須掌握框架(framework)。這里的終極目標(biāo)是學(xué)會(huì)iOS的所有框架,以及全部的類和方法。但這幾乎是不可能完成的任務(wù):iOS有3000多個(gè)方法,200多個(gè)類。而且iOS升級(jí)的時(shí)候會(huì)加入新的類和方法。本書會(huì)全面介紹iOS SDK,但是不會(huì)太過(guò)深入。作者的目標(biāo)是帶領(lǐng)讀者入門,使讀者能夠自行閱讀并理解Apple的參考文檔。Big Nerd Ranch采用本書作為“iOS新人培訓(xùn)課程”的教材。這些課程經(jīng)過(guò)了長(zhǎng)期檢驗(yàn),幫助很多人成為了iOS程序員。真心希望這本書也能給你帶來(lái)幫助。
內(nèi)容概要
本書涵蓋了開(kāi)發(fā)iOS應(yīng)用的方方面面。從Objective-C基礎(chǔ)知識(shí)到新增加的語(yǔ)言特性;從AppKit庫(kù)到常見(jiàn)的Cocoa設(shè)計(jì)模式;從Xcode技巧到Instrumentst等。如果讀者剛接觸iOS編程,閱讀本書前兩章可以快速入門。如果讀者已經(jīng)有iOS編程經(jīng)驗(yàn),閱讀本書可以拾遺補(bǔ)缺。本書的另一個(gè)特色是教讀者以正確的方法解決問(wèn)題。Objective-C的習(xí)慣約定有哪些(例如命名約定,內(nèi)存管理約定),創(chuàng)建子類時(shí)如何處理初始化方法,Cocoa的常見(jiàn)設(shè)計(jì)模式有哪些,如何選擇數(shù)據(jù)保存方法等。這些問(wèn)題,如果讀者自己摸索,難免費(fèi)時(shí)費(fèi)力。本書已經(jīng)將這些知識(shí)整理、歸納并清楚地呈現(xiàn)在讀者面前。
作者簡(jiǎn)介
Joe Conway是Big Nerd
Ranch的資深教師,自iOS平臺(tái)發(fā)布以來(lái)一直從事相關(guān)的咨詢服務(wù)。Joe畢業(yè)于美國(guó)威斯康辛大學(xué),在Mac OS
X早期即開(kāi)始編寫Objective-C和Cocoa代碼。他編寫了Big Nerd
Ranch的“iOS新手培訓(xùn)課程”教材。該教材廣受好評(píng),是本書的原型。
Aaron Hillegass曾就職于NeXT公司和蘋果公司,目前在Big Nerd
Ranch教授iOS編程課程。Aaron在NeXT時(shí)編寫了第一本OpenStep教材(OpenStep是Cocoa的前身)。本書以Big
Nerd Ranch的教學(xué)課程為基礎(chǔ),涵蓋了近20年OpenStep和Cocoa的開(kāi)發(fā)成果。
書籍目錄
Table of Contents
簡(jiǎn)介
本書適合哪些讀者
第二版有哪些更新?
教學(xué)理念
如何使用本書
本書是如何組織
代碼風(fēng)格
版式說(shuō)明
開(kāi)發(fā)所需的硬件與軟件
第1章 第一個(gè)簡(jiǎn)單的iOS應(yīng)用
1.1 創(chuàng)建Xcode項(xiàng)目
1.2 創(chuàng)建界面
1.3 模型-視圖-控制器
1.4 聲明
聲明實(shí)例變量
聲明方法
1.5 創(chuàng)建關(guān)聯(lián)
設(shè)置指針
設(shè)置目標(biāo)(target)和動(dòng)作(action)
關(guān)聯(lián)小結(jié)
1.6 實(shí)現(xiàn)方法
1.7 針對(duì)模擬器構(gòu)建并運(yùn)行應(yīng)用
1.8 安裝應(yīng)用
1.9 應(yīng)用圖標(biāo)
1.10 啟動(dòng)圖片
第2章 Objective-C
2.1 對(duì)象
2.2 使用實(shí)例
創(chuàng)建對(duì)象
發(fā)送消息
釋放對(duì)象
2.3 編寫命令行工具RandomPossessions
NSString
NSArray與NSMutableArray
2.4 子類化Objective-C類
實(shí)例變量
存取方法
實(shí)例方法
初始化方法
其他初始化方法與初始化方法鏈
類方法
測(cè)試子類
2.5 異常與控制臺(tái)窗口
2.6 快速枚舉
2.7 練習(xí)
第3章 內(nèi)存管理
3.1 內(nèi)存管理基礎(chǔ)
C語(yǔ)言的內(nèi)存管理
通過(guò)對(duì)象管理內(nèi)存
3.2 引用計(jì)數(shù)
使用retain計(jì)數(shù)
使用autorelease
存取方法和內(nèi)存管理
實(shí)現(xiàn)dealloc
通過(guò)屬性機(jī)制簡(jiǎn)化存取方法
copy和mutableCopy
Retain計(jì)數(shù)規(guī)則
3.3 深入學(xué)習(xí):再談內(nèi)存管理
第4章 委托機(jī)制與Core Location
4.1 項(xiàng)目、目標(biāo)和框架
4.2 Core Location
通過(guò)CLLocationManager獲取更新數(shù)據(jù)
4.3 委托機(jī)制
協(xié)議
協(xié)議方法
委托機(jī)制、控制器對(duì)象和內(nèi)存管理
4.4 使用調(diào)試器
4.5 練習(xí):方位
4.6 深入學(xué)習(xí):構(gòu)建階段、編譯器錯(cuò)誤和連接器錯(cuò)誤
預(yù)處理(Preprocessing)
編譯
連接
第5章 MapKit與文本輸入
5.1 對(duì)象圖
5.2 MapKit框架
5.3 界面屬性
5.4 設(shè)置MapView對(duì)象的委托對(duì)象
使用文檔
創(chuàng)建MKAnnotation子類
標(biāo)記位置
完成Whereami
5.5 練習(xí):擴(kuò)充標(biāo)注
5.6 練習(xí):根據(jù)地理位置獲取城市信息
第6章 創(chuàng)建UIView子類
6.1 創(chuàng)建自定義視圖
drawRect:方法
創(chuàng)建UIView實(shí)例
6.2 繪制文字和陰影
6.3 使用UIScrollView
6.4 實(shí)現(xiàn)縮放功能
6.5 隱藏狀態(tài)條
6.6 練習(xí):顏色
6.7 深入學(xué)習(xí):Retain循環(huán)
6.8 深入學(xué)習(xí):重畫視圖
第7章 視圖控制對(duì)象
7.1 視圖控制對(duì)象與XIB文件
7.2 使用視圖控制對(duì)象
創(chuàng)建UITabBarController對(duì)象
創(chuàng)建視圖控制對(duì)象和標(biāo)簽項(xiàng)
為視圖控制對(duì)象創(chuàng)建視圖
深入淺出XIB:介紹文件所有者
7.3 視圖的顯示和消失
7.4 視圖控制對(duì)象的生命周期與內(nèi)存過(guò)低警告
7.5 UIViewController子類與模板
7.6 練習(xí):地圖標(biāo)簽
第8章 方向感應(yīng)器
8.1 設(shè)置方向感應(yīng)器
8.2 獲取方向感應(yīng)器數(shù)據(jù)
8.3 加速方向與加速數(shù)值
8.4 使用加速感應(yīng)器數(shù)據(jù)
8.5 使加速感應(yīng)器數(shù)據(jù)更“平滑”
8.6 偵測(cè)搖動(dòng)
8.7 練習(xí):改變顏色
8.8 深入學(xué)習(xí):濾波與頻率
8.9 深入學(xué)習(xí):Retina顯示屏
第9章 通告機(jī)制與設(shè)備轉(zhuǎn)動(dòng)
9.1 通告中心
9.2 UIDevice通告
9.3 自動(dòng)轉(zhuǎn)屏
用代碼設(shè)置自動(dòng)縮放掩碼與按位運(yùn)算符
9.4 強(qiáng)制使用橫排模式
9.5 練習(xí):設(shè)備近身通告
深入學(xué)習(xí):覆蓋自動(dòng)轉(zhuǎn)屏
第10章 UITableView與UITableViewController
10.1 編寫Homepwner應(yīng)用
10.2 UITableViewController
創(chuàng)建UITableViewController子類
10.3 UITableView數(shù)據(jù)源
PossessionStore:?jiǎn)螌?shí)例對(duì)象
實(shí)現(xiàn)數(shù)據(jù)源方法
10.4 UITableViewCell對(duì)象
創(chuàng)建并獲取UITableViewCell對(duì)象
重用UITableViewCell對(duì)象
10.5 代碼片段庫(kù)
10.6 練習(xí):表格段
第11章 編輯UITableView
11.1 編輯模式
11.2 增加行
11.3 刪除行
11.4 移動(dòng)行
第12章 UINavigationController
12.1 UINavigationController
UINavigationBar
12.2 加入額外的UIViewController
12.3 UINavigationController的導(dǎo)航功能
將視圖控制對(duì)象壓入棧
視圖控制對(duì)象之間的數(shù)據(jù)傳遞
視圖的顯示和消失
12.4 練習(xí):數(shù)字鍵盤(Number Pad)
第13章 相機(jī)
13.1 通過(guò)UIImageView顯示圖片
通過(guò)UIImagePickerController拍攝照片
ImageStore
NSDictionary
創(chuàng)建并使用鍵
隱藏鍵盤
13.2 練習(xí):刪除圖片
13.2 深入:攝像
第14章 UIPopoverController與模態(tài)視圖控制對(duì)象
14.1 將Homepwner改寫為通用應(yīng)用
14.2 UIPopoverController
14.3 模態(tài)視圖控制對(duì)象
關(guān)閉模態(tài)視圖控制對(duì)象
模式視圖控制對(duì)象的樣式
編寫視圖控制對(duì)象的委托協(xié)議
模態(tài)視圖控制對(duì)象的過(guò)渡動(dòng)畫
第15章 保存、讀取與多任務(wù)處理
15.1 應(yīng)用沙盒
獲取文件路徑
15.2 固化
對(duì)象的固化
對(duì)象的解固
15.3 應(yīng)用狀態(tài)、狀態(tài)切換與多任務(wù)處理
15.4 通過(guò)NSData保存數(shù)據(jù)
15.5 再談內(nèi)存過(guò)低警告
15.6 “模型-視圖-控制器-存儲(chǔ)”設(shè)計(jì)模式
15.7 練習(xí):為Whereami增加固化功能
15.8 深入:應(yīng)用狀態(tài)的切換
15.9 深入:文件系統(tǒng)的讀取和寫入
15.10 深入:程序包
第16章 創(chuàng)建UITableViewCell子類
16.1 創(chuàng)建HomepwnerItemCell
創(chuàng)建子視圖
子視圖的布局
使用UITableViewCell子類對(duì)象
16.2 處理圖片
16.3 練習(xí):輔助指示視圖
16.4 練習(xí):縮小原圖
第17章 Core Data
17.1 對(duì)象-關(guān)系映射
17.2 用Core Data重寫PossessionStore的數(shù)據(jù)保存功能
模型文件
NSManagedObject與NSManagedObject子類
更新PossessionStore
為Homepwner增加AssetType功能
17.3 再談SQL
17.4 各種保存機(jī)制的優(yōu)缺點(diǎn)
17.5 練習(xí):增加AssetType對(duì)象
17.6 練習(xí):AssetType對(duì)象的iPad界面
第18章 本地化
18.1 通過(guò)NSLocale實(shí)現(xiàn)國(guó)際化
18.2 資源的本地化
18.3 NSLocalizedString與字符串對(duì)照表
18.4 練習(xí):增加一套本地化資源
18.5 深入:NSBundle在國(guó)際化中的作用
第19章 設(shè)置
19.1 更新Whereami
19.2 NSUserDefaults
19.3 深入:“設(shè)置”應(yīng)用
第20章 觸摸事件與UIResponder
20.1 觸摸事件
20.2 創(chuàng)建TouchTracker應(yīng)用
20.3 處理觸摸事件并創(chuàng)建線條對(duì)象
20.4 響應(yīng)對(duì)象鏈
20.5 練習(xí):保存和讀取
20.6 練習(xí):圓圈
20.7 深入學(xué)習(xí):UIControl
第21章 Instruments
21.1 靜態(tài)分析器
21.2 Instruments
21.3 Allocations組件
Allocations組件的設(shè)置選項(xiàng)
內(nèi)存堆快照分析
Time Profiler組件
21.3 Xcode方案
創(chuàng)建新方案
21.4 構(gòu)建設(shè)置
第22章 Core Animation Layer
22.1 層與視圖的關(guān)系
22.2 創(chuàng)建CALayer對(duì)象
22.3 層的顯示內(nèi)容
22.4 隱式可動(dòng)畫屬性
22.5 深入:通過(guò)代碼生成顯示內(nèi)容
22.6 深入:層、位圖與上下文
22.7 練習(xí):動(dòng)態(tài)生成層的顯示內(nèi)容
第23章 通過(guò)CAAnimation控制動(dòng)畫
23.1 動(dòng)畫對(duì)象
23.2 通過(guò)CABasicAnimation實(shí)現(xiàn)旋轉(zhuǎn)動(dòng)畫
速度控制函數(shù)
動(dòng)畫結(jié)束后的處理
23.3 通過(guò)CAKeyframeAnimation實(shí)現(xiàn)彈跳動(dòng)畫
23.4 練習(xí):更多動(dòng)畫效果
23.5 深入:外觀層和模型層
第24章 Block對(duì)象與范疇
24.1 為TouchDrawView上色
24.2 Block對(duì)象
Block對(duì)象與變量
捕獲變量
通過(guò)其他內(nèi)建的方法使用Block對(duì)象
通過(guò)Block對(duì)象保持代碼的短小精練
24.3 范疇
24.4 深入學(xué)習(xí):內(nèi)存管理與Block對(duì)象
24.5 深入學(xué)習(xí):比較多種回調(diào)機(jī)制實(shí)現(xiàn)途徑的優(yōu)缺點(diǎn)
第15章 Web服務(wù)與UIWebView
25.1 Web服務(wù)
編寫Nerdfeed
從指定的URL獲取數(shù)據(jù)
使用NSURLConnection
解析XML數(shù)據(jù)
日志輸出技巧
25.2 UIWebView
25.3 深入學(xué)習(xí):NSXMLParser
25.4 深入學(xué)習(xí):HTTP請(qǐng)求主體
25.5 深入學(xué)習(xí):認(rèn)證信息
25.6 練習(xí):解析并顯示更多數(shù)據(jù)
25.7 練習(xí):加強(qiáng)UIWebView
第26章 UISplitViewController
26.1 在Nerdfeed中使用UISplitViewController
26.2 主、從視圖控制對(duì)象間的通信
26.3 在豎排模式下顯示主視圖控制對(duì)象
26.4 將Nerdfeed改寫為通用應(yīng)用
第27章 多媒體播放與后臺(tái)運(yùn)行
27.1 創(chuàng)建MediaPlayer應(yīng)用
27.2 系統(tǒng)聲音
注冊(cè)系統(tǒng)聲音
播放系統(tǒng)聲音
27.3 播放壓縮格式的音頻文件
27.4 播放視頻文件
MPMoviePlayerViewController
視頻文件的預(yù)讀
27.5 后臺(tái)運(yùn)行
后臺(tái)運(yùn)行規(guī)則
其他形式的后臺(tái)運(yùn)行
27.6 底層API
27.7 練習(xí):錄音
第15章 Bonjour與Web服務(wù)端
28.1 Bonjour
創(chuàng)建CocoaServer
發(fā)布Bonjour服務(wù)
通過(guò)Bonjour查找服務(wù)
28.2 HTTP通信
用Objective-C編寫Web服務(wù)端
獲取服務(wù)端的網(wǎng)絡(luò)地址信息
字節(jié)序
創(chuàng)建服務(wù)請(qǐng)求
接收Web請(qǐng)求
28.3 深入學(xué)習(xí):TXTRecords
第29章 推送通知與網(wǎng)絡(luò)編程
29.1 設(shè)置客戶端,為接收推送通知做準(zhǔn)備
注冊(cè)客戶端
創(chuàng)建并設(shè)置針對(duì)推送通知的provisioning profile
29.2 投遞推送通知
向provider發(fā)送設(shè)備token
29.3 發(fā)送推送通知
通過(guò)NSStream和Apple服務(wù)器創(chuàng)建網(wǎng)絡(luò)連接
通過(guò)NSStream建立網(wǎng)絡(luò)連接
為Apple服務(wù)器提供數(shù)據(jù)
處理投遞錯(cuò)誤
再談針對(duì)流連接的數(shù)據(jù)讀取
29.4 幾種額外的客戶端通知處理機(jī)制
聲音和圖標(biāo)標(biāo)記
通過(guò)推送通知傳送自定義數(shù)據(jù)
29.5 正式的通知服務(wù)器以及其他發(fā)布事宜
29.6 深入學(xué)習(xí):反饋服務(wù)
第30章 后記
30.1 接下來(lái)做什么
30.2 結(jié)束語(yǔ)
索引
章節(jié)摘錄
版權(quán)頁(yè):插圖:
名人推薦
閱讀此書,轉(zhuǎn)身成為iPhone程序員。 ——Dietrich Kappe Pathfinder Development公司CTO
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載