TOP
GOGO開學趣,參考書應有盡有
iOS 7:iPhone/iPad應用開發技術詳解(簡體書)
滿額折

iOS 7:iPhone/iPad應用開發技術詳解(簡體書)

商品資訊

人民幣定價:79 元
定價
:NT$ 474 元
優惠價
87412
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點 :12 點
商品簡介
作者簡介
名人推薦
目次
書摘/試閱

商品簡介

本書由資深Mac/iOS開發工程師基于iOS 7撰寫。內容全面,從Objective-C語法知識、iOS功能特性,到高級開發方法和技巧,幾乎涵蓋了中初級iOS開發工程師需要掌握的所有技術和知識;實戰性強,每個知識點都有輔助理解的小案例,最后還提供了兩個綜合性應用開發案例。內容循序漸進,是系統學習iOS應用開發的經典著作。
全書共20章,分4部分。準備篇(第1~2章)介紹了iOS、Objective-C和Xcode的入門知識,詳細描述了iOS 7新特性、Objective-C應用開發環境的搭建,以及iPhone應用開發的完整過程;語法篇(第3~8章)詳細講解Objective-C的語法知識,其中包括類、對象、消息和協議,以及內存管理,重點講解了Foundation框架常用類的使用方法;基礎篇(第9~18章)講解了iOS應用開發的框架,包含多狀態和多任務、視圖和視圖控制器、事件和通知、音頻和視頻等,這些內容是本書的重點;實戰篇(第19~20章)詳細講解了兩個實戰案例的完整開發過程,分別是基于iPad的應用程序“精靈小書柜”和基于iPhone的“彈球游戲”,目標是通過兩個案例把前面學到知識應用到實踐中,幫助讀者真正掌握iOS應用開發的過程。

作者簡介

劉一道
資深Mac/iOS開發工程師,有近10年軟件開發經驗,精通iOS、Objective-C、Xcode等與蘋果開發相關的各項技術,同時對Android和Windows Phone等移動開發技術也有深入的研究,并積累了豐富的實戰經驗。出版了《Objective-C程序設計入門與實踐》等著作。

名人推薦

技術新穎,基于iOS 7撰寫,詳細講解開發iPhone和iPad應用所需掌握的各項基礎知識、開發流程和高級技巧,是系統學習iOS應用開發的經典著作
資深Mac/iOS工程師撰寫,內容循序漸進,實戰性強,每個知識點都準備了輔助理解的小案例,最后還提供兩個綜合性案例

前 言
如何成為一名軟件開發工程師
從大學畢業到如今,不知不覺敲代碼已有十余載。從初期的“亂石穿空,驚濤拍岸,卷起千堆雪”,到如今的“道可道也,非恒道也。名可名也,非恒名也”,真可謂“談笑間,檣櫓灰飛煙滅”。少了份“浮躁”,多了份“平靜與思考”。懂得了敲代碼正如雕刻家雕刻作品一樣,需要一點一點精雕細刻,才可能創造出“藝術品”;懂得了“道”存在于代碼之間,正所謂“為學者日益,為道者日損,損之又損,以至于無為”。
對于軟件開發這個殿堂,估計很多人會長久徘徊于門外,特別是那些想邁進這個大門的初學者或者愛好者。實際上,當初的我也是帶著很多的困惑和很大的壓力步入這個行業的。
大學期間留給我們的多是“一無所有”的四年。而吾等眾生,面對畢業之后父母“斷奶”之迫,需要自己靠雙手來“自力更生”;而面對校園外的“招聘”,自己總是那么惶惶不安缺乏“自信”,特別是參加過幾場人才招聘會之后,真可謂“欲哭無淚”呀!
引用普希金的詩《假如生活欺騙了你》:“假如生活欺騙了你,不要傷心,不要哭泣;這樣的日子里,需要勇氣;要相信快樂的日子總會來臨。”只要你有夢想有激情,有強烈的學習欲望,有較強的邏輯思維能力和一定的英語基礎,熱愛軟件開發工作,同時能做到持之以恒,相信你不但能成為一名職業的軟件開發工程師,而且還能成為一名優秀的軟件開發工程師。
這一行是靠能力說話的,同時,這又是一個充滿激情的行業。不管你是否畢業,不管你是否是計算機專業,甚至不管你是否上過大學,只要肯努力,有上進心,都可以加入軟件開發團隊中。也許你就是中國未來的比爾·蓋茨或者喬布斯,世界會因“你”而精彩(李開復很喜歡這個座右銘)!
這里我還想說兩點,希望對即將畢業或者剛步入大學的你有用:
對于高校在讀的學生,不管將來要從事什么行業,建議早有規劃,早做一些準備。以免畢業做“啃老族”。
對于即將大學畢業或者已經畢業的學生,建議最好不要參加社會上的“軟件開發培訓”。一是需要一筆可觀的培訓費(如果經濟條件好,參加也不錯);二是不利于自學能力的培養。因為從事軟件開發行業,需要保持一顆不斷學習的心,否則很容易被淘汰。
為什么學習iPhone/iPad應用開發技術
1)基于iPhone/iPad的應用開發已成為當今移動智能設備兩大主流應用開發之一。
最近幾年國內外從事基于iPhone/iPad開發的人員增速一直位于前列,已經形成了一個龐大的開發隊伍。無論是傳統互聯網還是移動互聯網,iPhone/iPad應用設計理念一直引導著眾多人模仿、推崇和跟隨。iPhone/iPad已成為當今移動智能設備應用發展的里程碑。
2)支持iPhone/iPad的操作系統iOS是當今移動智能設備運行最穩定的操作系統。
當今市場上應用最廣的兩大主流智能移動設備操作系統分別是Android和iOS。前者系統的穩定性、開銷性和安全性成為“三座大山”,難以“移動”。很多用過Android手機的用戶都遇到過手機“死機”、“莫名重啟”等問題,而iOS就很少發生這類情況。
3)iPhone/iPad框架的原生態語言是Objective-C。
選擇Objective-C作為iPhone/iPad框架的原生態語言有許多方面的原因。
首先,最主要的原因是,Objective-C是面向對象的語言。iPhone/iPad框架中的很多功能只能通過面向對象技術來呈現。iPhone/iPad SDK用的就是Objective-C。
其次,Objective-C是標準C語言的一個超集,現存的C程序無須重新開發就能夠使用iPhone/iPad軟件框架,并且在Objective-C中可以使用C的所有特性。可以選擇什么時候采用面向對象的編程方式(例如定義一個新的類),什么時候使用傳統的面向過程的編程方式(定義數據結構和函數)。
此外,Objective-C是一個簡潔的語言,它的語法簡單,沒有歧義,易于學習。因為術語易于混淆以及抽象設計的重要性,對于初學者來說,面向對象編程的學習曲線比較陡峭。像Objective-C這種結構良好的語言使得成為一個面向對象程序員更為容易。介紹Objective-C的章節也如同其語言本身一樣簡潔。
和其他基于標準C語言的面向對象語言相比,Objective-C對動態機制支持得更為徹底。編譯器為運行環境保留了很多對象本身的數據信息,因此某些在編譯時需要做出的選擇就可以推遲到運行時來決定。這種特性使得基于Objective-C的程序非常靈活和強大。
4)基于iPhone/iPad的應用市場已經成為“成熟有價市場”。
蘋果應用商店(App Store)是蘋果公司為其iPhone、iPod touch、iPad、Mac等產品創建和維護的數字化應用發布平臺,允許用戶從iTunes Store瀏覽和下載一些由iOS SDK或者Mac SDK開發的應用程序。根據應用發布的不同情況,用戶可以付費或者免費下載。
如果你有不錯的優秀產品,可以發布到蘋果商店,標上價格。如果有人下載你的應用就會很有信用地“付款”,達到一定的下載數量,也是一筆可觀收入。國內有很多個人和小公司,通過發布的應用已經獲得了很大的成功。
本書適合哪些讀者
對軟件開發,特別是對iPhone/iPad開發有興趣的人。
想成為一名專職的軟件開發人員。
在校的學生可將本書作為學習計算機軟件開發的教程。
想了解有關iPhone/iPad軟件開發方面知識的從業人員,本書能幫你很快“過渡”。
開設相關專業課程的大專院校。
你將學到什么
本書是iPhone/iPad開發的入門級書,也是系統介紹支持iPhone/iPad應用開發框架的書。本書最大的作用就是引導你入門,只要你有夢想,有激情,通過本書你將會學到iPhone/iPad開發入門所需要掌握的基本知識。掌握本書知識,便可以邁進iPhone/iPad開發的門檻。
但是想成為一名優秀的iPhone/iPad軟件開發人員,還需要很多方面的知識,所以希望閱讀完本書的你,繼續深造學習,使自己“更上一層樓”!
你該如何閱讀本書
本書采取循序漸進的方式。對于有一定的軟件開發經驗,或者缺乏耐心的讀者,可以根據“需求”選擇不同的章節來閱讀,這也是最有效的讀書方式,也是我推崇的讀書方式。
本書共20章,從內容上可以分四部分。
準備篇(第1~2章):首先介紹一些iOS、Objective-C和Xcode的入門知識,使讀者了解這三者之間的關系,粗略了解它們的發展史;并且關注了iOS 7的新特性。然后介紹了大家熟悉的Objective-C應用開發環境的搭建,使讀者初次感受iPhone開發過程。經過這部分的學習使讀者對有關iPhone/iPad開發有一個大致的了解,為以后應用開發做準備。
語法篇(第3~8章):主要介紹Objective-C語法知識,這部分內容有些枯燥,但卻是日后開發過程中必須掌握的基礎知識。其中包括類、對象、消息和協議,以及內存管理。重點介紹了Foundation框架常用類的使用方法。
基礎篇(第9~18章):重點介紹iOS應用開發的框架,使讀者掌握實際應用開發所需要的基礎知識,這一部分是本書的重點。通過本章的學習,讀者應該掌握多狀態和多任務、視圖和視圖控制器、事件和通知、音頻和視頻。
實戰篇(第19~20章):由于篇幅有限,實戰環節只列出兩個案例,分別是基于iPad的應用程序和基于iPhone的小游戲。通過兩個案例,把前面學到的知識應用到實踐中,使讀者真正體驗和了解軟件開發的全過程。
勘誤和支持
除封面署名外,參加本書編寫工作的還有:孫振江、陳連增、邊偉、郭合蒼、鄭軍、吳景峰、楊珍民、王文朝、崔少闖、韋閃雷、劉紅嬌、王潔、于雪龍、孔琴。由于作者的水平有限,編寫時間倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。為此,特意在此公布我的博客地址。可以將書中的錯誤發布在Bug勘誤表頁面中,如果你遇到任何問題可以留言,我將盡量在線上提供最滿意的解答。同時,我也會在博客上不定期發布一些實戰示例,供讀者下載學習,來不斷強化所學知識。
該書定稿的時候,蘋果陸續公布了大量有關iOS 7的技術文檔和范例,且一直在進行著。我會通過博客不定期發表有關iOS 7的最新材料,緊跟iOS 7最新的技術進展,為各位讀者提供完善的技術材料和指導。書中實例的源文件可以從華章網站下載,如果你有更多的寶貴意見,歡迎發送郵件至郵箱yifeilang@aliyun.com,期待能夠得到你們的真摯反饋。
致謝
我愛讀書,往往不求甚解。中學時雖翻閱過《道德經》、《奇門遁甲》等書,但不得要領,轉瞬間,煙消云散。2012年,到張瑞海先生的公司做事,有幸重溫《道德經》。張先生是一位令我“醍醐灌頂”的人,“慧根不深”但“后天上進,悟性很高”,不但創造了龐大事業,還引導公司員工“禪悟”《道德經》。正是這個機會,使我悟到喬布斯在iPhone/iPad設計的“禪道”,在冥冥中明白了“0”和“1”,與“道生一, 一生二, 二生三, 三生萬物。萬物負陰而抱陽,沖氣以為和”相通。明白寫代碼“天下之至柔”才是代碼“重構”之道,程序的設計最高境界在于“無為而無不為”。因有機會聆聽先生之“布道”,使我掌握了iPhone/iPad設計之要領并寫作本書。如今能與諸位同仁共享本書,真心感激張先生這種獨特的“布道、禪道和悟道”之術。
高山之巔,白云之上,羽翔之光。我甚幸遇到機械工業出版社華章公司楊福川先生,他為我安排白宇女士作為本書的編輯。在編程行業,程序員都有一個過分的溺愛——容不得別人“批評”自己寫的東西,正如母親愛護自己的孩子一樣。之前,與其他出版社合作出版過一本書,由于對方的編輯欠些“火候”,一本書將近一百個批注點,竟然只有三四個點“適得要領”,雖然該書已出版,但我總感覺缺些什么。而白宇女士,儼然一位“武林”高手,熟諳“點穴之法”,筆筆正中穴位之處,其批注使人心悅誠服,油然敬佩,為本書大增“光色”。
最后,感謝的就是你,我親愛的讀者,感謝你拿起這本書,你們的認可,就是我的最大的快樂。

劉一道

目次

前言
第一部分 準備篇
第1章 初識iOS、Objective—C和Xcode/2
1.1 認識iOS/2
1.1.1 iOS的發展歷程/2
1.1.2 iOS的設計和功能特性/3
1.1.3 iOS7的新特性/5
1.1.4 iOS架構/6
1.1.5 iOS框架/8
1.1.6 iOS系統框架的變遷/11
1.1.7 MacOSX和iOS平臺不同框架的差異性/13
1.1.8 初步了解iOS開發者工具/16
1.2 認識Objective—C/20
1.2.1 發展歷程及版本變化/20
1.2.2 語言性能與分析/21
1.2.3 框架和代碼的關系/22
1.3 基于非蘋果機平臺搭建開發環境/23
1.3.1 前期準備/23
1.3.2 創建用于安裝MacOSX的VMWare虛擬機/24
1.3.3 安裝MacOSX/26
1.3.4 安裝XcodeSDK/30
1.4 小結/33
第2章 創建你的第一個iOS應用程序/34
2.1 應用程序的實現目標/34
2.2 入門的開始/35
2.2.1 新建一個Xcode項目/35
2.2.2 在模擬器中查看應用程序的效果/37
2.3 啟動一個應用程序/39
2.3.1 探究main.m源文件/40
2.3.2 分析屬性列表文件/41
2.3.3 查看串聯圖/41
2.4 檢查視圖控制器及其視圖/43
2.4.1 如何使用檢查器/43
2.4.2 更改視圖的背景顏色/45
2.5 對視圖進行配置和管理/47
2.5.1 新增用戶界面元素/47
2.5.2 為按鈕增添一個動作/51
2.5.3 為文本框和標簽創建插座/53
2.5.4 打開Connections檢查器驗證連接/56
2.5.5 對文本框進行委托處理/57
2.5.6 讓應用程序具有輔助功能/58
2.6 使用視圖控制器完成應用程序/59
2.6.1 給用戶的名稱添加屬性/59
2.6.2 實現changeGreeting:方法/60
2.6.3 把視圖控制器作為輸入文本框的委托/61
2.7 測試應用程序/62
2.7.1 排查和檢測代碼/62
2.7.2 程序代碼清單/63
2.8 小結/64
第二部分 語法篇
第3章 Objective—C——構建iOS應用程序的基石/66
3.1 探窺Objective—C語言/66
3.1.1 面向對象語言Objective—C是C語言的超集/67
3.1.2 類和對象/67
3.1.3 方法和發消息/69
3.1.4 屬性和存取方法/71
3.1.5 塊/72
3.1.6 協議和類別/73
3.1.7 類型和編碼策略/74
3.1.8 import語句/76
3.2 Objective—C2.0新增特性/78
3.2.1 關聯引用/78
3.2.2 快速枚舉/80
3.2.3 選擇器/81
3.2.4 靜態類型的使用/84
3.3 進一步認識塊/87
3.3.1 塊可以帶參數和返回值/87
3.3.2 塊可以捕獲封閉范圍內的值/87
3.3.3 在塊內捕獲變量值的變化/88
3.3.4 塊可以作為函數或者方法的參數/89
3.3.5 用類型定義可以簡化塊語法/90
3.3.6 使用屬性可跟蹤塊/90
3.4 小結/91
第4章 類——構建應用程序的類型對象原型/92
4.1 認識根類/92
4.1.1 NSObject簡介/92
4.1.2 根類和協議/93
4.1.3 根類方法/93
4.1.4 根類接口規范/95
4.1.5 根類實例方法和類方法/95
4.2 如何設計類/95
4.2.1 設計接口/96
4.2.2 設計實現/99
4.2.3 如何使用類名/100
4.2.4 如何比較類/101
4.3 類的類型/101
4.3.1 如何指定靜態類型/101
4.3.2 類型的自查處理機制/102
4.4 變量/102
4.4.1 局部變量/102
4.4.2 全局變量/103
4.4.3 實例變量/103
4.4.4 靜態變量/106
4.4.5 變量的存儲類別/108
4.5 屬性/108
4.5.1 屬性的聲明/109
4.5.2 屬性的實現/110
4.5.3 屬性類型和相關函數/111
4.5.4 屬性的類型編碼/112
4.5.5 屬性重聲明/112
4.5.6 修改父類的屬性/113
4.5.7 新舊版本屬性運行時的區別/113
4.6 方法/114
4.6.1 方法通用格式/114
4.6.2 方法的調用/114
4.7 繼承/115
4.7.1 類的繼承關系/115
4.7.2 繼承父類的實例變量/116
4.7.3 繼承父類的方法/116
4.7.4 哪些類需要被繼承/117
4.7.5 對象的合成/118
4.8 方法重寫/119
4.8.1 方法重寫的規則/119
4.8.2 方法重寫的使用/120
4.9 方法重載/121
4.9.1 方法重載的規則/121
4.9.2 方法重載的使用/121
4.9.3 調用還是重載/123
4.9.4 重載的類型/123
4.10 類的擴展/125
4.10.1 類別的用法/125
4.10.2 延伸的用法/127
4.11 異常處理/128
4.11.1 如何啟用異常處理/128
4.11.2 如何捕捉不同類型的異常/128
4.11.3 如何拋出異常/129
4.12 小結/129
第5章 對象——構建應用程序的重要“活體”/130
5.1 理解對象/130
5.1.1 對象和根類的關系/130
5.1.2 對象如何構建程序/131
5.1.3 對象動態類型/132
5.1.4 對象的生命周期/133
5.2 創建對象/137
5.2.1 對象分配處理的機制/137
5.2.2 對象初始化方法的原型init/137
5.2.3 初始化方法的返回值/139
5.2.4 init方法的實現/140
5.2.5 多個初始化方法和指定初始化方法/141
5.2.6 使用dealloc方法/143
5.2.7 類工廠方法/144
5.3 對象的所有權/144
5.3.1 對象所有權策略有哪些/145
5.3.2 保留計數的處理機制/145
5.3.3 自動釋放所有權/146
5.3.4 共享對象的有效性/147
5.3.5 如何獲取所有權/148
5.4 回收對象/149
5.4.1 dealloc方法的實現/149
5.4.2 通過引用返回的對象/149
5.4.3 保留循環的處理機制/150
5.4.4 對象的弱引用/150
5.4.5 資源的有效管理/151
5.5 應用對象/152
5.5.1 驗證對象的功能/152
5.5.2 比較對象/153
5.5.3 復制對象/153
5.6 小結/154
第6章 消息和協議——對象之間的通信方式/155
6.1 認識消息/155
6.1.1 消息的基本語法/155
6.1.2 消息處理機制/157
6.1.3 獲得方法地址/158
6.1.4 使用隱藏的參數/159
6.2 消息發送/159
6.2.1 向nil發送消息/160
6.2.2 向自己發送消息/160
6.2.3 通過發送消息調用父類方法/161
6.3 消息轉發/163
6.3.1 消息轉發處理機制/164
6.3.2 與多重繼承關系/165
6.3.3 與類繼承關系/166
6.3.4 與消息代理對象關系/167
6.4 認識協議/167
6.4.1 協議的分類/167
6.4.2 協議對象/169
6.4.3 預定義接口/169
6.4.4 如何使用預定義方法/170
6.4.5 為匿名對象聲明方法/171
6.5 應用協議/172
6.5.1 如何采用一個協議/172
6.5.2 如何服從一個協議/172
6.5.3 協議類型校驗處理機制/173
6.5.4 如何實現協議嵌套協議/173
6.5.5 如何引用其他協議/174
6.6 小結/175
第7章 Foundation框架——提供基本的系統服務/176
7.1 認識Foundation框架/176
7.1.1 Foundation類層次結構/176
7.1.2 與CoreFoundation框架的區別/180
7.1.3 如何引用及查詢Foundation框架信息/181
7.1.4 對象的可變性和不變性/183
7.2 創建和使用值對象/184
7.2.1 創建值對象/184
7.2.2 字符串和NSString字面常量/185
7.2.3 NSNumber字面常量/185
7.2.4 日期和時間/186
7.3 創建和使用集/186
7.3.1 將對象按某種順序儲存在數組中/187
7.3.2 將鍵值對儲存在字典中/189
7.3.3 將無序對象儲存在集合中/190
7.4 Foundation框架常用類的使用方法詳解/190
7.4.1 數字類型/191
7.4.2 字符串類型/193
7.4.3 數組類型/197
7.4.4 字典類型/205
7.4.5 日期類型/207
7.5 小結/209
第8章 內存管理——應用程序高效運行的基礎/210
8.1 內存管理基礎知識/210
8.1.1 Cocoa的引用計數機制/210
8.1.2 內存管理規則/211
8.1.3 內存管理應用實例/211
8.1.4 內存管理混亂的原因及解決方法/212
8.2 存取方法/214
8.2.1 聲明存取方法/214
8.2.2 實現存取方法/214
8.2.3 存取方法的使用/216
8.2.4 實現重置方法/217
8.2.5 應用存取方法常見錯誤/218
8.3 自動釋放池/218
8.3.1 自動釋放池工作原理/219
8.3.2 非ApplicationKit程序中的自動釋放池/219
8.3.3 自動釋放池和線程/220
8.3.4 作用域和嵌套自動釋放池的關系/220
8.3.5 所有權策略/221
8.3.6 如何實現垃圾回收/221
8.4 內存中復制的處理機制/222
8.4.1 深復制和淺復制/222
8.4.2 獨立副本/223
8.4.3 使用alloc和init方式復制/223
8.4.4 使用NSCopyObject函數復制/224
8.4.5 可變對象和不可變對象的復制/225
8.4.6 值對象和復制/226
8.5 Nib對象的內存管理/226
8.5.1 插座對象實現的內存管理機制/227
8.5.2 Nib文件實現的內存管理機制/227
8.6 小結/228
第三部分 基礎篇
第9章 探究iOS應用程序的核心/230
9.1 iOS應用程序核心架構/230
9.1.1 iOS應用程序的生命周期/230
9.1.2 iOS應用程序的主函數/230
9.1.3 應用程序的委托/232
9.1.4 主Nib文件/232
9.1.5 事件處理周期/232
9.1.6 應用程序的基本設置模式/234
9.2 iOS應用程序的核心對象/235
9.2.1 iOS應用程序的常見對象/235
9.2.2 數據模型的定義/237
9.2.3 構建用戶界面/239
9.3 iOS應用程序包/241
9.3.1 典型的iOS應用程序捆綁包/242
9.3.2 信息屬性列表/243
9.3.3 程序圖標和啟動圖像/246
9.3.4 Nib文件/246
9.4 iOS應用程序關鍵任務的處理機制/247
9.4.1 初始化和終止/247
9.4.2 響應中斷/248
9.4.3 低內存警告/249
9.5 iOS應用程序的行為定制/250
9.5.1 以景觀模式啟動/250
9.5.2 和其他應用程序的通信/251
9.5.3 定制的URL模式/251
9.5.4 應用程序的偏好設置/253
9.5.5 關閉屏幕鎖定/254
9.6 小結/254
第10章 多狀態和多任務——iOS功能日趨增強的表現/255
10.1 應用程序的狀態/255
10.1.1 狀態切換遵循的原則/255
10.1.2 應用程序的狀態及切換路徑/256
10.2 應用程序啟動周期/257
10.2.1 加載進入前臺/257
10.2.2 加載進入后臺/258
10.2.3 主函數/260
10.2.4 啟動處理的機制/260
10.3 響應中斷/261
10.3.1 基于警告的中斷處理機制/261
10.3.2 中斷應激處理/262
10.3.3 通話時用戶界面的調整處理/263
10.4 前臺與后臺之間的切換機制/263
10.4.1 從前臺切換到后臺的流程/263
10.4.2 轉換后臺時應激處理/264
10.4.3 后臺運行時的內存情況/265
10.4.4 從后臺回轉到前臺的流程/265
10.4.5 在喚醒時處理排隊的通知/266
10.4.6 應用程序的終止條件/266
10.5 主運行循環/267
10.5.1 主運行循環的運行機制/267
10.5.2 iOS應用程序中的事件/268
10.6 后臺執行和多任務處理/268
10.6.1 判斷設備系統多任務是否可用/269
10.6.2 在后臺執行有限長度的任務/269
10.6.3 調度本地通知的遞送/270
10.6.4 允許在后臺運行的任務/271
10.6.5 選擇退出后臺的執行/271
10.7 小結/271
第11章 視圖——iOS應用程序交互的基礎/272
11.1 窗口、視圖、視圖控制器/272
11.1.1 三者之間的關系/272
11.1.2 窗口/273
11.1.3 視圖/273
11.1.4 視圖控制器/274
11.2 視圖的幾何屬性特征/275
11.2.1 視圖坐標系統/275
11.2.2 邊框、邊界和中心的關系/275
11.2.3 坐標系統變換/277
11.3 視圖架構處理/277
11.3.1 視圖交互模型/278
11.3.2 視圖渲染架構/279
11.3.3 改變視圖的層/280
11.3.4 內容模式與比例縮放/280
11.3.5 自動尺寸調整行為/281
11.4 視圖的創建和管理/283
11.4.1 創建視圖對象/284
11.4.2 視圖的標識和命名/284
11.4.3 子視圖的添加和移除/285
11.4.4 視圖層次中的坐標轉換/287
11.4.5 視圖的查詢/288
11.5 在運行時修改視圖/289
11.5.1 實現視圖動畫/290
11.5.2 配置動畫的參數/290
11.5.3 配置動畫的委托/291
11.5.4 響應布局的變化/291
11.5.5 重畫視圖的內容/292
11.5.6 隱藏視圖/293
11.6 定制視圖對象/293
11.6.1 初始化定制視圖/293
11.6.2 繪制視圖內容/294
11.6.3 響應事件/295
11.6.4 視圖對象的清理/295
11.7 小結/296
第12章 UIKit框架——創建基于觸摸的用戶界面/297
12.1 UIKit標準視圖的分類/297
12.2 顯示視圖/298
12.2.1 標簽/298
12.2.2 圖片視圖/299
12.2.3 進度條視圖/300
12.2.4 等待視圖/301
12.3 控件/302
12.3.1 按鈕/302
12.3.2 文本框/304
12.3.3 滑塊/305
12.3.4 切換開關/306
12.4 導航視圖/307
12.4.1 導航欄/307
12.4.2 標簽欄/309
12.5 警告視圖和動作表單/310
12.5.1 警告視圖/310
12.5.2 動作表單/311
12.6 文本和Web視圖/313
12.6.1 文本視圖/313
12.6.2 Web視圖/314
12.7 容器視圖/315
12.7.1 表視圖/315
12.7.2 滾動視圖/319
12.7.3 工具欄/321
12.8 其他常用類型/322
12.8.1 分頁控件/322
12.8.2 搜索欄/324
12.9 小結/328
第13章 視圖控制器——視圖的幕后操縱者/329
13.1 視圖控制器基礎知識/329
13.1.1 視圖控制器的功能/329
13.1.2 視圖控制器的管理機制/330
13.1.3 視圖控制器的分類/331
13.1.4 視圖控制器的內容多種展示方式/333
13.1.5 多種視圖控制器混合應用/334
13.2 視圖控制器的生命周期/335
13.2.1 視圖控制器的初始化/336
13.2.2 視圖的加載和卸載/336
13.3 標準視圖控制器/338
13.3.1 標準視圖控制器的功能及使用方法/339
13.3.2 標準視圖控制器的應用/340
13.4 分割視圖控制器/342
13.4.1 分割視圖控制器構建原理及功能/342
13.4.2 分割視圖控制器的應用/343
13.5 導航視圖控制器/344
13.5.1 導航視圖控制器構建原理及功能/344
13.5.2 導航視圖控制器的應用/346
13.6 選項卡視圖控制器/347
13.6.1 選項卡視圖控制器構建原理及功能/347
13.6.2 選項卡視圖控制器的應用/349
13.7 翻頁視圖控制器/349
13.7.1 翻頁視圖控制器構建原理及功能/349
13.7.2 翻頁視圖控制器的應用/351
13.8 小結/351
第14章 事件——應用程序的驅動動力/352
14.1 iOS系統中的事件/352
14.1.1 事件是如何驅動應用程序的/352
14.1.2 什么是觸摸事件/352
14.1.3 什么是運動事件/353
14.1.4 事件和觸摸/354
14.1.5 事件的傳遞/356
14.1.6 響應者對象和響應者鏈/356
14.1.7 調整事件的傳遞/357
14.2 常見手勢的處理實例/358
14.2.1 觸摸事件處理方法/358
14.2.2 單個和多個觸碰手勢處理方法/359
14.2.3 檢測碰擦手勢/360
14.2.4 處理復雜的多點觸摸序列/361
14.2.5 觸摸事件處理技巧/362
14.3 鍵盤管理/363
14.3.1 接收鍵盤通告/363
14.3.2 顯示鍵盤/365
14.3.3 取消鍵盤/365
14.3.4 移動鍵盤下面的內容/365
14.4 小結/368
第15章 通知——消息的多樣化展示/369
15.1 通知的實現原理/369
15.1.1 本地通知/369
15.1.2 推送通知/370
15.1.3 通知的應用場景/371
15.2 通知的相關事務/373
15.2.1 自定義警告聲音/373
15.2.2 創建和調度本地通知/373
15.2.3 接收遠程通知/375
15.2.4 如何處理通知/377
15.3 推送通知服務/380
15.3.1 推送通知和路徑/380
15.3.2 服務的反饋和質量/381
15.3.3 推送通知的安全處理機制/381
15.3.4 通知的負載處理/385
15.4 推送通知的配置和開發/386
15.4.1 沙箱環境和產品環境/386
15.4.2 配置處理流程/387
15.5 實現推送通知服務的通信功能/389
15.5.1 普通提供的通信功能/389
15.5.2 二進制接口和通知的格式/390
15.5.3 服務的反饋/393
15.6 小結/393
第16章 CoreData框架——管理應用程序的數據模型/394
16.1 認識CoreData/394
16.1.1 初窺CoreData特性/394
16.1.2 CoreData數據管理機制/395
16.1.3 探究CoreData的本質/396
16.2 CoreData堆棧配置/396
16.2.1 托管對象和上下文/398
16.2.2 讀取請求/399
16.2.3 持久化存儲協調者/400
16.2.4 持久化存儲/401
16.2.5 持久化文檔/402
16.2.6 托管對象模型/402
16.3 CoreData模塊的運作機制及基礎類/402
16.3.1 NSManagedObject—Context類/403
16.3.2 NSManaged—Object類/404
16.3.3 NSManagedObject—Context類/405
16.3.4 NSPersistentStore—Coordinator類/405
16.3.5 NSPersistent—Document類/406
16.3.6 NSFetch—Request類/406
16.4 CoreData堆棧訪問技術/407
16.4.1 創建一個新的托管對象上下文/407
16.4.2 讀取托管對象模型和實體/407
16.4.3 添加持久化存儲/407
16.5 托管對象的管理/408
16.5.1 讀取托管對象/408
16.5.2 讀取特定的屬性值/411
16.5.3 創建托管對象/412
16.5.4 保存托管對象/413
16.5.5 刪除托管對象/413
16.6 小結/413
第17章 音頻和視頻——強大的多媒體功能支持/414
17.1 初識iOS多媒體框架/414
17.1.1 iOS聲音處理工具/414
17.1.2 CoreAudio框架/414
17.1.3 音頻硬件編解碼/415
17.1.4 iOS支持的音頻回放和錄制格式/415
17.1.5 CoreAudio音頻會話接口/416
17.1.6 iOS系統支持的音頻單元/417
17.2 錄制音頻/417
17.2.1 使用AVAudioRecorder類進行錄制/417
17.2.2 用音頻隊列服務進行錄制/418
17.2.3 音頻中斷處理/419
17.3 播放音頻/419
17.3.1 通過iPod媒體庫訪問接口播放媒體項/419
17.3.2 使用系統聲音服務播放短聲音及觸發振動/420
17.3.3 通過AVAudioPlayer類輕松播放聲音/421
17.3.4 用音頻隊列服務播放和控制聲音/423
17.3.5 使用OpenAL播放和定位聲音/426
17.3.6 解析音頻流/426
17.4 iPhone/iPad音頻的最佳實踐/426
17.4.1 操作音頻的貼士/426
17.4.2 iOS中偏好的音頻格式/427
17.5 iOS中的視頻/428
17.5.1 錄制視頻/428
17.5.2 播放視頻/428
17.6 小結/429
第18章 設備特性——支持多種功能的應用/430
18.1 識別可用的硬件特性/430
18.2 ExternalAccessory框架的管道機制/430
18.2.1 聲明應用程序支持的協議/431
18.2.2 在運行時連接配件/431
18.2.3 處理和流相關的數據/432
18.2.4 監控與配件有關的事件/433
18.3 訪問加速計事件/433
18.3.1 配置加速計/434
18.3.2 選擇恰當的更新頻率/435
18.3.3 從加速計數據中分離重力成分/435
18.3.4 從加速計數據中分離實時運動成分/435
18.3.5 取得當前設備的方向/436
18.4 CoreLocation框架提供定位服務/436
18.4.1 獲取用戶的當前位置/436
18.4.2 獲取方向相關的事件/438
18.5 MapKit框架提供地圖服務/439
18.5.1 在用戶界面中加入地圖視圖/440
18.5.2 縮放和移動地圖內容/440
18.5.3 顯示用戶的當前位置/441
18.5.4 坐標和像素之間的轉換/441
18.5.5 通過反向地理編碼器獲取地標信息/441
18.6 地圖上注解的實現/442
18.6.1 在地圖視圖上顯示注解/442
18.6.2 添加和移除注解對象/443
18.6.3 定義注解視圖/443
18.6.4 創建注解視圖/443
18.6.5 處理注解視圖中的事件/444
18.7 UIKit框架的應用/447
18.7.1 顯示照相機界面/447
18.7.2 關閉照相機界面/448
18.7.3 顯示照片選取器界面/449
18.8 使用郵件編輯界面/450
18.9 小結/451
第四部分 實戰篇
第19章 iPad應用開發實戰——精靈小書柜/454
19.1 系統的總體設計方案/454
19.1.1 系統模塊組成/454
19.1.2 啟動項目/455
19.2 組裝書柜/458
19.2.1 書柜的實現/459
19.2.2 書柜的框架及組裝/460
19.2.3 設置書柜的顯示效果/461
19.3 在小書柜上展示書的封面/462
19.3.1 構建書的封面/462
19.3.2 將書的封面展示在書柜中/463
19.3.3 構建多面書柜/463
19.3.4 通過手勢展示多面書柜/465
19.4 閱讀書的內容/465
19.4.1 設計內容顯示的模板/465
19.4.2 書的封面與內容關聯/466
19.4.3 動畫效果翻頁/469
19.4.4 返回書柜主界面/470
19.5 小結/471
第20章 iPhone應用開發實戰——彈球游戲/472
20.1 認識游戲引擎/472
20.1.1 Cocos2D游戲引擎/472
20.1.2 Box2D物理引擎/473
20.1.3 Chipmunk物理引擎/474
20.1.4 游戲引擎組成結構/474
20.1.5 物理引擎中的剛體/476
20.2 Cocos2D框架中的常用類/476
20.2.1 節點類CCNode/476
20.2.2 場景類CCScene/477
20.2.3 層類CCLayer/479
20.2.4 標簽類CCLabel/480
20.2.5 動作類CCAction/481
20.2.6 導演類CCDirector/482
20.2.7 精靈類CCSprite/483
20.3 彈球游戲的準備工作/483
20.3.1 彈球游戲實現目標/483
20.3.2 安裝Cocos2D—iPhone/484
20.3.3 啟動項目的創建/485
20.3.4 程序控制權的轉交/486
20.4 實現場景及其互動對象/489
20.4.1 添加自定義的游戲場景/489
20.4.2 創建場景類GameScene/489
20.4.3 創建World對象和邊界框/491
20.5 制作彈球/492
20.5.1 添加彈球精靈/492
20.5.2 創建彈球body并添加沖力/493
20.5.3 使用tick方法刷新對象/493
20.6 設計球拍/494
20.6.1 增加球拍/494
20.6.2 移動球拍/496
20.6.3 限制球拍/497
20.6.4 球反彈的優化處理/498
20.7 方塊的實現/498
20.7.1 增加方塊/499
20.7.2 銷毀方塊/500
20.8 游戲邏輯處理/501
20.8.1 碰撞檢測機制/501
20.8.2 球碰到屏幕底部/502
20.8.3 游戲結束的條件/504
20.8.4 添加游戲結束場景/505
20.9 添加游戲音樂/507
20.10 小結/507

書摘/試閱



第一部分
準 備 篇
第1章 初識iOS、Objective—C和Xcode
第2章 創建你的第一個iOS應用程序
第1章 初識iOS、Objective—C和Xcode
“問渠哪得清如許,為有源頭活水來。”如果要開發iPhone/iPad應用程序,就不得不探究其源頭——iOS和Objective—C。本章將從整體的角度介紹iOS架構和常用框架,使你對基于iPhone/iPad的應用開發,從整體輪廓上有一個清新的認識。由于iOS架構為開發iPhone和iPad應用提供了豐富而強大的功能,因此,了解架構里不同功能的框架是十分重要的。在介紹iOS之余,初步認識一下Objective—C;最后介紹如何搭建iPhone/iPad開發環境。
1.1 認識iOS
iOS是由蘋果公司(以下簡稱“蘋果”)開發的手持設備操作系統。蘋果公司在2007年1月9日的MacWorld大會上公布這個系統,隨后于同年的6月發布了第一版iOS操作系統,當初此操作系統的名稱為“iPhonerunsOSX”。最初設計是供iPhone使用的,后來陸續套用到iPodtouch、iPad以及AppleTV等蘋果產品上。就像其基于的MacOSX操作系統一樣,它也是以Darwin為基礎的。系統操作占用約240MB的內存空間。
1.1.1 iOS的發展歷程
iOS經過不斷發展和完善,逐步被人們熟悉和接受。最初,由于沒有人了解iPhonerunsOSX的潛在價值和發展前景,導致沒有一家軟件公司、沒有一個軟件開發者為iPhonerunsOSX開發軟件或者提供軟件支持。于是,蘋果公司時任CEO斯蒂夫·喬布斯說服各大軟件公司以及開發者可以先搭建低成本的網絡應用程序(WebAPP),使得它們能像iPhone的本地化程序一樣測試iPhonerunsOSX平臺。
2007年1月,蘋果發布了iPhoneOS1.0。該版本支持多點觸控、虛擬鍵盤輸入、郵件發送等功能。
2008年7月,蘋果發布了iPhoneOS2.0。版本2.0比1.0增加了很多新的功能。例如加入了AppStore、支持手寫輸入、正式支持中文、支持Office文檔、截圖功能和計算器等。
2009年6月,蘋果發布了iPhoneOS3.0。版本3.0比2.0增加了100多種功能,例如人們期待的剪切、復制、粘貼、藍牙等,以及手機橫向鍵盤、彩信、P2P連接等功能吸引了大量的用戶。
2010年6月,蘋果發布其第四代iPhone操作系統。由于獲得了思科iOS的名稱授權,從2010年起,iPhoneOS正式更名為iOS,該版本為iOS4。相比以前的版本,iOS4有多任務處理、程序文件夾E—mail功能增強、企業級應用、游戲中心、廣告嵌入和無分類郵箱等七大改進,尤其是多任務處理,彌補了蘋果長期以來的痛處。
2011年6月,蘋果發布了iOS5。相比iOS4,新版本增加了聯系人黑名單,同時把Twitter和Siri也整合到了該系統。Siri是基于Nuance的語音識別技術,它不是蘋果土生土長的服務,而是蘋果2010年4月通過收購所得的。從此版本起,iOS開始了增加第三方應用。
2012年6月,蘋果公司在WWDC2012大會上公布了全新的iOS6操作系統。iOS6可算是蘋果首次對深度整合的實施,Facebook、新浪微博、百度搜索、視頻等第三方應用也不斷整合到新的版本中。

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 412
海外經銷商無庫存,到貨日平均30天至45天