iOS 6應用開發實戰 ( 簡體 字) |
作者:劉銘 朱舸 著 | 類別:1. -> 程式設計 -> 手機程式 -> iPhone |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 35600 詢問書籍請說出此書號!【缺書】 NT售價: 345 元 |
出版日:5/1/2013 |
頁數:393 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111419143 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:為什么要寫這本書
我在開始學習iOS開發之前一直從事著PHP和Flex的應用程序開發,因為四年前為蘋果移動設備開發應用程序至少在國內畢竟還不是很熱門。當時的互聯網開發大多還是圍繞著Web 2.0理念的開發以及各種社交網站上的Flash交互游戲開發。記得一次在回家的路上,我靜靜地思考這樣一個問題:從現在開始,我是否要放棄多年駕輕就熟的語言,轉而去一個全新的開發領域呢?挑戰肯定是有的,但是挑戰與機遇共存。就目前情況而言,iOS程序員的數量遠遠低于傳統C、C++的人數。不僅如此,在筆者參加過的多次Adobe開發者大會上,與會人員的數量和那些人的熱情是大家可以想象的(盡管筆者還沒有真正看到過一款使用Flash或Flex開發的商業應用)。眾所周知,雖然目前iOS設備在國內大量普及(不管是個人,還是機關、單位),但是真正符合國人需求的應用并不是很多,尤其是符合某一領域的商用、垂直化應用還遠遠不夠,這就為iOS開發團隊帶來了巨大的機遇。因此在經過一段時間的學習和開發實踐以后,便有了寫這本書的想法,主要想通過本書讓更多希望從事iOS開發的程序員盡快入門,同時為將來的創業打下良好的基礎。
2012年9月19日,蘋果第六代手機操作系統iOS 6.0正式發布,iOS 6 SDK(Software Development Kit)也隨之放出,該SDK為我們進行應用程序開發提供了更多的功能和特性。其中包括全新的蘋果地圖,Siri發送短信、預約會議,與朋友分享照片流,Passbook優惠券處理和iPhone全新呼叫等功能。如果說從iOS 1.0到iOS 4.0蘋果更多的是做系統深度開發,那么從iOS 5.0到iOS 6.0的時代就是廣度的開發,與此同時操作系統的容量也在不斷的變大。
截至目前,蘋果對于iOS操作系統的更新和升級還在繼續,這也就代表著我們對Objective-C和iOS開發的學習始終不會停止。新的iOS硬件設備可能會帶動更多更好的應用程序出現,而這些應用程序的背后將是一個巨大的財富。希望大家一切從用戶的角度出發,一步一個腳印去做,最終實現自己的夢想。
本書特色
本書以構建一個MyDiary項目的實踐案例貫穿全書,將所有知識點融入到實踐當中,使大家真正理解和掌握如何通過Xcode SDK和Objective-C語言來開發iOS應用程序。
在基礎篇的學習中,可以了解到什么是iOS,什么是Xcode。作為一名iOS開發者需要什么軟、硬件條件。然后就是如何通過Xcode和Objective-C來搭建一個能夠記錄文本、圖片、聲音,查看設備當前位置的MyDiary項目。還結合該項目講授了如何使用表格來組織信息。
在高級篇中,大部分的內容都是針對之前所學內容的深入和擴展。包括如何組織表格,如何處理設備的旋轉,多語言和地區的處理以及如何操作日歷等。
讀者對象
本書適合具備以下幾方面知識和硬件條件的群體閱讀。
面向對象的開發經驗,熟悉類、實例、方法、封裝、繼承、重寫等概念。
有Objective-C或C、C++的開發經驗。
有MVC設計模式開發經驗。
有簡單的圖像處理的經驗。
有一臺Inter架構的Mac電腦(MacBook Pro、MacBook Air、Mac Pro或Mac Mini)。
如果加入了iOS開發者計劃,還可以準備一臺iOS移動設備。
如何閱讀本書
本書邏輯上分為兩個部分:
第1章到第13章為基礎部分,通過構建一個MyDiary iPhone應用程序項目,向大家介紹了如何使用Xcode SDK開發工具及通過Objective-C語言編寫一個可以記錄文本、保存圖片和聲音的App。
第14章到第22章為高級部分,著重講解iOS開發中可能會用到的高級功能,包括視圖的旋轉和滾動處理、表格的高級操作、多語言環境等。
本書自始至終都通過MyDiary iPhone應用程序這個實際項目來展開的,所以建議初學者從第1章開始學習,以達到良好的學習效果。
勘誤和支持
由于作者的水平有限,編寫時間倉促,書中難免會出現一些錯誤或不準確的地方,懇請讀者批評指正。書中的全部源文件可以從華章網站下載。如果你有更多的寶貴意見,也歡迎發送郵件至郵箱liuming_cn@qq.com,期待能夠得到你們的真摯反饋。
致謝
首先要感謝偉大的可以改變這個世界的Steven Jobs,他的精神對我產生了非常大的影響。
感謝機械工業出版社華章公司的編輯楊福川老師,在這一年多的時間中始終支持我的寫作,他的鼓勵和幫助引導我順利完成全部書稿。
最后感謝我的爸爸、媽媽、老婆、樂樂、張燕、趙霞、秦瓊、王艷標、楊曉龍、劉天翔、梁濤,感謝他們對我的支持與幫助,并時時刻刻為我灌輸著信心和力量!
謹以此書獻給我最親愛的家人,以及眾多熱愛iOS的朋友們!
劉 銘 |
內容簡介:本書是目前iOS 6領域最全面系統和易于閱讀的著作之一,有兩大特點:第一,技術新穎,基于最新iOS 6技術撰寫,系統講解開發iPhone和iPad應用所需掌握的基礎技術和高級技巧,以及其流程和方法;第二,易于閱讀,從認知學角度進行內容規劃,一個案例貫穿全書,不僅能從很大程度上降低學習的時間成本,降低閱讀門檻,而且能至始至終讓讀者在動手實踐中保持學習的熱情,堅持把這本書讀完。
全書共22章,可分為兩個部分:基礎部分(1~13章)分別介紹了開發iOS應用前應該做的準備工作、Xcode 4的基本使用、Objective-C的基本語法、Interface Builder的基本操作、視圖控制器、通過設備獲取用戶位置、列表、視圖及視圖控制器、各種控件、多媒體、偏好設置等知識,這些知識通過一個名稱為MyDiary的應用完美地串聯在一起,讀者從一開始就能動手實踐并從實踐中掌握這些理論知識;高級部分(14~22章)則非常詳細地講解了iOS應用的架構、iOS應用的測試與調試、可滾動視圖的創建、自動宣傳和自動調整大小、表格視圖的編輯、手勢識別、警告、應用程序本地化、日歷和事件等高級話題,是iOS開發工程師進階修煉必須掌握的核心內容。 |
目錄:前 言
第1章 開發前的準備 / 1
1.1 iOS的歷史 / 2
1.2 iOS 5 和iOS 6的新特性 / 3
1.2.1 iCloud云服務 / 3
1.2.2 LLVM 3.0編譯器 / 3
1.2.3 自動引用計數器 / 3
1.2.4 故事板 / 4
1.2.5 整合Twitter框架 / 4
1.2.6 iOS 5 的其他特性 / 4
1.2.7 iOS 6的新特性 / 6
1.3 iOS設備的相關介紹 / 7
1.3.1 各種iOS設備 / 7
1.3.2 iOS設備的顯示分辨率 / 8
1.3.3 iOS應用程序與硬件的關系 / 9
1.3.4 iPhone的網絡連接 / 9
1.3.5 iPhone的輸入與反饋機制 / 10
1.4 成為一名iOS開發者 / 10
1.4.1 注冊成為Apple Developer / 11
1.4.2 加入iOS開發者計劃 / 13
1.5 下載并安裝iOS開發工具 / 14
1.6 本書實戰項目簡介 / 16
第2章 認識Xcode 4 / 17
2.1 Xcode的歡迎界面 / 18
2.2 使用模板創建MyDiary項目 / 19
2.3 Xcode的工作界面 / 21
2.3.1 Xcode工具欄 / 21
2.3.2 導航區域 / 22
2.3.3 編輯區域 / 25
2.3.4 通用區域 / 26
2.4 使用代碼編輯器 / 28
2.5 iOS模擬器 / 30
2.5.1 iOS模擬器的特性 / 31
2.5.2 模擬器中iOS系統的基本設置 / 32
2.5.3 在模擬器中安裝和卸載應用程序 / 33
2.5.4 iOS模擬器的限制 / 34
2.6 管理MyDiary項目的配置選項 / 34
2.6.1 設置設備的支持方向 / 35
2.6.2 設置應用程序的圖標 / 36
2.6.3 設置顯示狀態欄 / 37
2.6.4 設置應用程序的啟動畫面 / 38
第3章 有關Objective-C的知識儲備 / 40
3.1 內存管理基礎 / 41
3.1.1 C語言中的內存管理 / 42
3.1.2 面向對象的內存管理 / 42
3.2 引用計數器 / 43
3.2.1 使用引用計數器 / 44
3.2.2 使用autorelease / 48
3.3 類的setter與getter方法 / 51
3.4 dealloc方法 / 54
3.5 使用properties簡化訪問器 / 54
3.6 手動內存管理的規則 / 56
3.7 自動引用計數器 / 57
3.7.1 強引用 / 59
3.7.2 弱引用 / 60
第4章 Xcode中的Interface Builder / 61
4.1 了解Interface Builder / 62
4.1.1 Interface Builder中的關聯 / 62
4.1.2 故事板 / 63
4.2 創建用戶界面 / 66
4.2.1 對象庫 / 66
4.2.2 向視圖添加界面元素 / 67
4.2.3 Interface Builder的布局工具 / 68
4.3 自定義界面的外觀 / 71
4.3.1 屬性檢查窗口 / 71
4.3.2 設置輔助功能 / 72
4.3.3 在模擬器中使用輔助功能 / 73
4.4 與代碼進行關聯 / 74
4.4.1 要完成的效果 / 74
4.4.2 outlet變量和action方法簡介 / 75
4.4.3 為ViewController類添加成員變量 / 75
4.4.4 創建outlet關聯 / 76
4.4.5 創建action關聯 / 77
4.4.6 使用快速檢查器查看關聯 / 78
第5章 視圖控制器 / 80
5.1 MVC設計模式簡介 / 81
5.2 MyDiary項目中的“關于作者”控制器 / 82
5.2.1 為“關于作者”控制器準備照片素材 / 83
5.2.2 設置Segmented Control / 84
5.2.3 為控制器準備相關數據 / 85
5.2.4 UIImage的類方法介紹 / 87
5.3 視圖控制器的重構 / 88
5.4 標簽欄控制器 / 90
5.4.1 標簽欄和其中的標簽 / 90
5.4.2 在故事板中添加標簽欄控制器 / 91
5.4.3 設置標簽欄配置條目 / 94
5.5 與視圖控制器相關的方法介紹 / 96
第6章 通過設備獲取用戶位置 / 99
6.1 項目、目標和框架 / 100
6.2 Core Location簡介 / 101
6.3 創建LocationViewController控制器 / 103
6.4 Core Location框架 / 105
6.4.1 從CLLocationManager獲取信息 / 107
6.4.2 在程序中確認定位服務是否可用 / 109
6.4.3 CLLocation類 / 111
6.5 委托 / 112
6.5.1 協議 / 112
6.5.2 協議方法 / 114
6.5.3 委托、控制器和內存管理 / 115
6.6 使用MapKit / 116
6.6.1 高德地圖iOS API / 116
6.6.2 使用高德iOS API顯示地圖 / 116
6.6.3 在真機上測試高德地圖 / 121
第7章 創建日記列表 / 123
7.1 表格視圖的組成部分 / 124
7.2 準備要顯示的數據 / 124
7.2.1 向Diary類的成員變量賦值 / 125
7.2.2 對象的分配和初始化 / 126
7.2.3 在故事板中添加表格視圖 / 128
7.2.4 Arrays類 / 131
7.3 UITableViewController類 / 133
7.3.1 剖析DiaryListViewController / 134
7.3.2 UITableView的數據源 / 134
7.4 UITableViewCell類 / 135
7.4.1 創建與檢索單元格 / 137
7.4.2 UITableViewCell的復用 / 140
7.5 增加點擊交互功能 / 141
第8章 通過導航控制器顯示多個視圖 / 144
8.1 使用導航控制器進行視圖間的導航 / 145
8.1.1 導航控制器介紹 / 146
8.1.2 創建導航控制器 / 147
8.1.3 導航欄 / 151
8.2 增加日記的詳細頁面 / 155
8.3 使用UINavigationController進行導航 / 159
8.3.1 推出視圖控制器 / 159
8.3.2 在視圖控制器間傳遞數據 / 160
第9章 為日記添加文本記錄功能 / 162
9.1 創建新的視圖控制器 / 163
9.1.1 創建CreateDiaryViewController類 / 163
9.1.2 創建Create Diary View Controller場景 / 164
9.1.3 建立IBOutlet和IBAction關聯 / 168
9.1.4 在應用程序中呈現和銷毀CreateDiaryViewController / 170
9.2 幾種常用的文本控件 / 175
9.2.1 UILabel控件 / 175
9.2.2 UITextField控件 / 176
9.2.3 UITextView對象 / 177
9.3 虛擬鍵盤的使用 / 178
9.4 NSDate及其相關類 / 180
9.5 日記記錄傳回DiaryListViewController / 181
第10章 為日記本添加照相功能 / 184
10.1 為項目添加新的視圖控制器 / 185
10.1.1 創建CameraViewController類 / 185
10.1.2 CameraViewController的呈現與銷毀 / 187
10.2 使用UIImagePickerController進行拍照 / 188
10.3 在應用程序中存儲圖片 / 192
10.3.1 NSDictionary類 / 193
10.3.2 創建和使用鍵 / 195
10.3.3 在Detail Diary View Controller場景中顯示日記照片 / 198
第11章 保存與載入日記 / 200
11.1 應用程序沙箱 / 201
11.2 創建單例模式DiaryStore類 / 202
11.3 獲取指定目錄的路徑 / 204
11.4 歸檔 / 205
11.4.1 對象的歸檔 / 205
11.4.2 對象的解檔 / 206
11.5 應用程序的狀態與過渡 / 209
11.6 使用NSData將數據寫入文件系統 / 212
11.7 在Mac系統中查看應用程序的資源 / 214
第12章 在日記中錄制和播放聲音 / 216
12.1 創建錄音機的界面 / 218
12.2 聲音的錄制 / 220
12.2.1 保存錄制的音頻文件 / 220
12.2.2 完善RecordViewController控制器 / 224
12.2.3 按照用戶的要求進行錄音 / 226
12.3 聲音的播放 / 227
12.4 中斷的處理 / 229
12.4.1 在播放聲音時處理中斷 / 229
12.4.2 在錄制聲音時處理中斷 / 230
12.5 在Detail Diary View Controller場景中播放聲音 / 231
第13章 應用程序的偏好設置 / 234
13.1 了解設置綁定資源包 / 235
13.2 為MyDiary添加設置綁定資源包 / 235
13.2.1 向項目中添加設置綁定資源包 / 236
13.2.2 設置屬性列表 / 236
13.2.3 添加文本框設置 / 239
13.2.4 添加密碼文本框設置 / 241
13.2.5 添加多值字段 / 241
13.2.6 添加開關設置 / 243
13.2.7 添加滑塊設置 / 243
13.2.8 設置滑塊圖標 / 243
13.2.9 增加設置子視圖 / 245
13.3 在應用程序中讀取偏好設置內容 / 247
第14章 iOS應用程序架構介紹 / 250
14.1 Objective-C和Cocoa Touch / 251
14.1.1 Cocoa Touch層 / 251
14.1.2 Foundation框架 / 252
14.1.3 iOS中的各種框架 / 252
14.2 iPhone應用程序的架構 / 253
14.2.1 main.m文件 / 254
14.2.2 自動釋放池 / 254
14.2.3 UIApplicationMain()函數 / 255
14.2.4 應用程序委托 / 256
14.2.5 視圖控制器 / 257
14.3 iOS應用程序的組成 / 258
14.3.1 應用程序文件夾的結構 / 258
14.3.2 可執行文件 / 258
14.3.3 Info.plist文件 / 258
14.3.4 程序圖標和啟動畫面 / 259
14.3.5 XIB文件 / 259
14.3.6 IPA文檔 / 259
14.4 平臺的限制 / 260
第15章 應用程序的調試 / 262
15.1 iOS幫助文檔 / 263
15.1.1 快速安裝幫助文檔 / 264
15.1.2 幫助文檔的窗口 / 265
15.1.3 類的文檔頁面介紹 / 268
15.2 代碼調試器 / 269
15.2.1 斷點的設置 / 270
15.2.2 調試代碼 / 272
15.2.3 調試控制臺 / 274
15.2.4 檢視對象 / 276
第16章 創建可滾動的視圖 / 277
16.1 UIScrollView類 / 278
16.2 Scroll View和Text Field / 283
16.2.1 完善Scroll View Controller中的界面元素 / 283
16.2.2 編寫與滾動相關的代碼 / 284
16.3 消息通知中心 / 288
16.4 完善CreateDiaryViewController控制器 / 290
16.4.1 使用Scroll View / 290
16.4.2 在Text View中讓鍵盤消失 / 293
第17章 自動旋轉和自動調整大小 / 296
17.1 自動旋轉的機制 / 297
17.1.1 點、像素和視網膜顯示 / 298
17.1.2 旋轉的方式 / 298
17.2 通過autosize屬性處理旋轉 / 298
17.2.1 創建一個新的視圖控制器 / 299
17.2.2 配置所支持的方向 / 299
17.2.3 在控制器中設定支持方向 / 300
17.2.4 使用autosize屬性設計界面 / 303
17.2.5 設置按鈕的autosize屬性 / 305
17.3 旋轉時重構視圖 / 306
17.3.1 創建和關聯Outlet / 307
17.3.2 旋轉時移動按鈕 / 307
17.4 旋轉時切換視圖 / 309
17.4.1 設計兩個視圖 / 309
17.4.2 執行旋轉時的切換 / 312
17.4.3 改變Outlet Collections / 314
第18章 編輯表格視圖 / 315
18.1 表格視圖的編輯模式 / 316
18.2 使用不同類型的附件指示器 / 317
18.3 創建自定義的單元格附件指示器 / 319
18.4 顯示具有層級的表格視圖 / 321
18.5 為表格創建Header和Footer / 322
18.5.1 創建頭視圖 / 323
18.5.2 載入XIB文件中的視圖 / 324
18.5.3 設置頭視圖 / 325
18.5.4 設置腳視圖 / 326
18.6 刪除行 / 328
18.7 移動表格視圖中的行 / 329
18.8 在表格視圖中使用刷新控件 / 331
第19章 手勢識別 / 333
19.1 多點觸摸概述 / 334
19.1.1 基本的操作手勢 / 335
19.1.2 手勢識別的分類和狀態 / 335
19.1.3 觸摸事件所響應的方法 / 336
19.2 拖曳手勢的檢測 / 336
19.2.1 簡單的手勢識別 / 337
19.2.2 UIPanGestureRecognizer類 / 339
19.3 輕劃手勢的檢測 / 340
19.4 旋轉手勢的檢測 / 342
19.5 長按手勢的檢測 / 344
19.6 掐捏手勢的檢測 / 345
第20章 警告用戶 / 348
20.1 通過警告對話框與用戶進行交互 / 349
20.1.1 構建簡單的Alert警告對話框 / 349
20.1.2 設置Alert的delegate / 353
20.1.3 顯示警告對話框 / 354
20.1.4 警告的類型 / 354
20.2 在警告對話框中呈現菜單 / 356
第21章 應用程序的本地化 / 359
21.1 使用NSLocale將項目國際化 / 360
21.2 本地化資源 / 366
21.2.1 本地化資源文件 / 366
21.2.2 使用NSLocalizedString和String Tables / 369
第22章 日歷和事件 / 373
22.1 Event Kit框架 / 374
22.1.1 通過CalDAV同步Google日歷 / 374
22.1.2 獲取日歷列表 / 375
22.1.3 向日歷中添加事件 / 380
22.1.4 訪問日歷的事件列表 / 382
22.1.5 從日歷中移除事件 / 386
22.1.6 添加重復發生的事件 / 389
22.2 Event Kit UI框架 / 392 |
序: |