出版時(shí)間:2012-9 出版社:人民郵電出版社 作者:[美] Dave Mark,[美] Jack Nutting,[美] Jeff LaMarche 頁(yè)數(shù):583 字?jǐn)?shù):880000 譯者:毛姝雯,漆 振,楊 越,孫文磊
Tag標(biāo)簽:無(wú)
前言
真是難以置信,現(xiàn)在你手里拿的(或在屏幕上看到的)已經(jīng)是本書的第4版了。開(kāi)始這趟旅程的這些年來(lái),我們?cè)诒緯袃A注了大量的心血、汗水和淚水, Cocoa Touch開(kāi)發(fā)非常奇妙,我們力求竭盡所能地將其特性和魅力展現(xiàn)給開(kāi)發(fā)者。一路走來(lái),我們樂(lè)在其中,希望你也一樣。本書進(jìn)行了全新改版,涵蓋了Xcode 4帶來(lái)的振奮人心的新變化。蘋果公司在從Xcode 3過(guò)渡到Xcode 4時(shí),重新設(shè)計(jì)了Xcode的絕大部分內(nèi)容,同樣,隨著Xcode的更新(編寫本書時(shí)為Xcode 4.2),我們也跟著作了修改。本書中的每個(gè)項(xiàng)目都從頭創(chuàng)建,使用了Xcode 4.2出色的新技術(shù)。當(dāng)然,正如本書書名所示,所有項(xiàng)目都以iOS 5為中心設(shè)計(jì),能在iOS 5系統(tǒng)上正常運(yùn)行。iOS SDK在iOS 5中變化顯著。你應(yīng)該想到了,項(xiàng)目模板發(fā)生了不少變化,對(duì)于你經(jīng)常要做的那些事情又有了許多新方法。當(dāng)然,還有大量新技術(shù)需要掌握。我們新增了兩章,分別介紹storyboard和iCloud;新版還涵蓋了處理表視圖的新策略,使用自動(dòng)引用計(jì)數(shù)(ARC)特性重新創(chuàng)建每個(gè)示例項(xiàng)目,以簡(jiǎn)化內(nèi)存管理??傊?,新版無(wú)疑是至今為止內(nèi)容最為豐富和充實(shí)的版本。無(wú)論你是iOS開(kāi)發(fā)的初學(xué)者還是老手,我們相信你都會(huì)喜歡這個(gè)版本中所涵蓋的新內(nèi)容。如果你沒(méi)有讀過(guò)之前的版本,或者仍然感到有些無(wú)所適從,或者你只想支持一下我們,那么一定要購(gòu)買第4版。我們非常感謝你的支持。記得訪問(wèn)本書的官方社區(qū)論壇,告訴我們你開(kāi)發(fā)的新應(yīng)用。我們期待在論壇上看到你。祝編程愉快!Dave、Jack和Jeff
內(nèi)容概要
iOS是如今炙手可熱的移動(dòng)平臺(tái),蘋果公司為其推出了強(qiáng)大的軟件開(kāi)發(fā)工具包iOS SDK?!秈OS 5基礎(chǔ)教程》是一部關(guān)于iOS SDK開(kāi)發(fā)的基礎(chǔ)教程,內(nèi)容翔實(shí)、語(yǔ)言生動(dòng)。幾位作者結(jié)合消費(fèi)類設(shè)備上的常見(jiàn)實(shí)例,循序漸進(jìn)地講解了適用于iPhone 4S、iPad 2及iPod touch開(kāi)發(fā)的基本流程。新版介紹強(qiáng)大的iOS 5操作系統(tǒng),涵蓋Xcode 4以來(lái)的新功能,其中最為引人注目的便是storyboard和iCloud,書中將以全新章節(jié)詳細(xì)介紹。全書所有項(xiàng)目均使用Xcode 4.2重新創(chuàng)建,讓開(kāi)發(fā)者全面感受Xcode 4帶來(lái)的振奮人心的新變化。
《iOS 5基礎(chǔ)教程》具有較強(qiáng)的通用性,編程領(lǐng)域的各層次讀者都能通過(guò)本書快速學(xué)習(xí)iOS發(fā),提高相關(guān)技能。
作者簡(jiǎn)介
Dave Mark 經(jīng)驗(yàn)豐富的Mac技術(shù)開(kāi)發(fā)專家,作家。他撰寫過(guò)許多Mac平臺(tái)和iOS開(kāi)發(fā)方面的暢銷書,比如《iPad開(kāi)發(fā)基礎(chǔ)教程》(中文版已由人民郵電出版社出版)。iOS/Android開(kāi)發(fā)公司MartianCraft創(chuàng)始人。
Jack Nutting 資深蘋果移動(dòng)開(kāi)發(fā)技術(shù)專家,作家。Objective-C和Cocoa框架的堅(jiān)定擁護(hù)者。《iPad開(kāi)發(fā)基礎(chǔ)教程》合著者。個(gè)人博客www.nuthole.com。
Jeff LaMarche 資深Mac與iPhone開(kāi)發(fā)人員,擁有20多年開(kāi)發(fā)經(jīng)驗(yàn)。他是MacTech Magazine和蘋果公司開(kāi)發(fā)人員網(wǎng)站的專欄作家。Jeff關(guān)于iOS開(kāi)發(fā)的博文廣受歡迎,其博客地址為www.iphonedevelopment.blogspot.com。
書籍目錄
目 錄
第1章 歡迎來(lái)到iOS世界 1
1.1 關(guān)于本書 1
1.2 必要條件 1
1.2.1 開(kāi)發(fā)者的選擇 3
1.2.2 必備知識(shí) 4
1.3 編寫iOS應(yīng)用程序有何不同 5
1.3.1 只有一個(gè)應(yīng)用程序正在運(yùn)行 5
1.3.2 只有一個(gè)窗口 5
1.3.3 訪問(wèn)受限 5
1.3.4 有限的響應(yīng)時(shí)間 6
1.3.5 有限的屏幕大小 6
1.3.6 有限的系統(tǒng)資源 6
1.3.7 不支持垃圾收集 7
1.3.8 新功能 7
1.3.9 與眾不同的方法 7
1.4 本書內(nèi)容 7
1.5 本次更新的內(nèi)容 9
1.6 準(zhǔn)備開(kāi)始吧 9
第2章 創(chuàng)建基本項(xiàng)目 10
2.1 在Xcode中設(shè)置項(xiàng)目 10
2.1.1 Xcode工作區(qū)窗口 14
2.1.2 深入研究項(xiàng)目 21
2.2 Interface Builder簡(jiǎn)介 23
2.2.1 nib文件的構(gòu)成 24
2.2.2 庫(kù) 25
2.2.3 在視圖中添加標(biāo)簽 26
2.2.4 屬性修改 29
2.3 美化iPhone應(yīng)用 30
2.4 小結(jié) 34
第3章 處理基本交互 35
3.1 MVC范型 35
3.2 創(chuàng)建項(xiàng)目 36
3.3 查看視圖控制器 37
3.3.1 理解輸出口和操作 38
3.3.2 清理視圖控制器 41
3.3.3 設(shè)計(jì)用戶界面 41
3.3.4 測(cè)試項(xiàng)目 51
3.4 理解應(yīng)用程序委托 51
3.5 小結(jié) 55
第4章 更豐富的用戶界面 56
4.1 滿是控件的屏幕 56
4.2 活動(dòng)、靜態(tài)和被動(dòng)控件 58
4.3 創(chuàng)建應(yīng)用程序 59
4.4 實(shí)現(xiàn)圖像視圖和文本字段 59
4.4.1 添加圖像視圖 59
4.4.2 調(diào)整圖像視圖 61
4.4.3 設(shè)置視圖屬性 62
4.4.4 添加文本字段 65
4.4.5 創(chuàng)建和連接輸出口 70
4.5 關(guān)閉鍵盤 71
4.5.1 完成輸入后關(guān)閉鍵盤 72
4.5.2 通過(guò)觸摸背景關(guān)閉鍵盤 73
4.5.3 添加滑塊和標(biāo)簽 75
4.5.4 連接操作和輸出口 77
4.5.5 實(shí)現(xiàn)操作方法 77
4.6 實(shí)現(xiàn)開(kāi)關(guān)、按鈕和分段控件 78
4.6.1 添加兩個(gè)帶標(biāo)簽的開(kāi)關(guān) 79
4.6.2 連接開(kāi)關(guān)輸出口和操作 80
4.6.3 實(shí)現(xiàn)開(kāi)關(guān)的操作方法 80
4.6.4 添加按鈕 81
4.6.5 為按鈕創(chuàng)建并關(guān)聯(lián)輸出口和操作 82
4.6.6 實(shí)現(xiàn)分段控件的操作方法 82
4.7 實(shí)現(xiàn)操作表和警報(bào) 82
4.7.1 遵從操作表委托方法 83
4.7.2 顯示操作表 83
4.8 美化按鈕 86
4.8.1 viewDidLoad方法 87
4.8.2 控件狀態(tài) 87
4.8.3 可拉伸圖像 88
4.9 小結(jié) 88
第5章 自動(dòng)旋轉(zhuǎn)和自動(dòng)調(diào)整大小 89
5.1 自動(dòng)旋轉(zhuǎn)機(jī)制 89
5.1.1 點(diǎn)、像素和Retina顯示屏 90
5.1.2 自動(dòng)轉(zhuǎn)屏方法 91
5.2 使用自動(dòng)調(diào)整屬性處理旋轉(zhuǎn) 91
5.2.1 配置應(yīng)用支持的方向 91
5.2.2 指定旋轉(zhuǎn)支持 92
5.2.3 使用自動(dòng)調(diào)整屬性設(shè)計(jì)界面 93
5.2.4 大小檢查器的自動(dòng)調(diào)整屬性 94
5.2.5 設(shè)置按鈕的自動(dòng)調(diào)整屬性 96
5.3 在旋轉(zhuǎn)時(shí)重構(gòu)視圖 97
5.3.1 創(chuàng)建和連接輸出口 98
5.3.2 在旋轉(zhuǎn)時(shí)移動(dòng)按鈕 99
5.4 切換視圖 100
5.4.1 設(shè)計(jì)兩個(gè)視圖 101
5.4.2 實(shí)現(xiàn)交換 102
5.4.3 修改輸出口集合 104
5.5 小結(jié) 104
第6章 多視圖應(yīng)用程序 106
6.1 多視圖應(yīng)用程序的常見(jiàn)類型 106
6.2 多視圖應(yīng)用程序的體系結(jié)構(gòu) 109
6.2.1 根控制器 110
6.2.2 內(nèi)容視圖剖析 111
6.3 構(gòu)建View Switcher 111
6.3.1 創(chuàng)建視圖控制器和nib文件 112
6.3.2 修改應(yīng)用程序委托 114
6.3.3 修改BIDSwitchView Controller.h 116
6.3.4 添加視圖控制器 116
6.3.5 構(gòu)建包含工具欄的視圖 117
6.3.6 編寫根視圖控制器 119
6.3.7 實(shí)現(xiàn)內(nèi)容視圖 123
6.3.8 制作轉(zhuǎn)換動(dòng)畫 126
6.4 小結(jié) 128
第7章 標(biāo)簽欄與選取器 129
7.1 Pickers應(yīng)用程序 130
7.2 委托和數(shù)據(jù)源 132
7.3 建立標(biāo)簽欄框架 132
7.3.1 創(chuàng)建文件 133
7.3.2 添加根視圖控制器 134
7.3.3 創(chuàng)建TabBarController.xib 135
7.3.4 連接輸出口,然后運(yùn)行 140
7.4 實(shí)現(xiàn)日期選取器 141
7.5 實(shí)現(xiàn)單組件選取器 144
7.5.1 聲明輸出口和操作 144
7.5.2 構(gòu)建視圖 145
7.5.3 將控制器實(shí)現(xiàn)為數(shù)據(jù)源和委托 146
7.6 實(shí)現(xiàn)多組件選取器 149
7.6.1 聲明輸出口和操作 150
7.6.2 構(gòu)建視圖 150
7.6.3 實(shí)現(xiàn)控制器 150
7.7 實(shí)現(xiàn)依賴組件 153
7.8 使用自定義選取器創(chuàng)建簡(jiǎn)單游戲 160
7.8.1 編寫控制器頭文件 160
7.8.2 構(gòu)建視圖 160
7.8.3 添加圖像資源 161
7.8.4 實(shí)現(xiàn)控制器 161
7.8.5 最后的細(xì)節(jié) 166
7.8.6 鏈接Audio Toolbox框架 170
7.9 小結(jié) 171
第8章 表視圖簡(jiǎn)介 172
8.1 表視圖基礎(chǔ) 172
8.1.1 表視圖和表視圖單元 173
8.1.2 分組表和無(wú)格式表 174
8.2 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的表 175
8.2.1 設(shè)計(jì)視圖 175
8.2.2 編寫控制器 176
8.2.3 添加一個(gè)圖像 179
8.2.4 表視圖單元樣式 181
8.2.5 設(shè)置縮進(jìn)級(jí)別 182
8.2.6 處理行的選擇 183
8.2.7 更改字體大小和行高 185
8.3 定制表視圖單元 186
8.3.1 向表視圖單元添加子視圖 186
8.3.2 創(chuàng)建UITableViewCell子類 187
8.3.3 從nib文件加載UITableViewCell 192
8.4 分組分區(qū)和索引分區(qū) 197
8.4.1 構(gòu)建視圖 197
8.4.2 導(dǎo)入數(shù)據(jù) 197
8.4.3 實(shí)現(xiàn)控制器 198
8.4.4 添加索引 201
8.5 實(shí)現(xiàn)搜索欄 202
8.5.1 重新考慮設(shè)計(jì) 203
8.5.2 深層可變副本 203
8.5.3 更新控制器頭文件 205
8.5.4 修改視圖 206
8.5.5 修改控制器實(shí)現(xiàn) 210
8.6 小結(jié) 221
第9章 導(dǎo)航控制器和表視圖 222
9.1 導(dǎo)航控制器 222
9.1.1 棧的性質(zhì) 222
9.1.2 控制器?!?23
9.2 由6個(gè)部分組成的分層應(yīng)用程序:Nav 224
9.2.1 子控制器 225
9.2.2 Nav應(yīng)用程序的骨架 228
9.2.3 向項(xiàng)目中添加圖形 234
9.2.4 第一個(gè)子控制器:展示按鈕視圖 235
9.2.5 第二個(gè)子控制器:校驗(yàn)表 242
9.2.6 第三個(gè)子控制器:表行上的控件 246
9.2.7 第四個(gè)子控制器:可移動(dòng)的行 252
9.2.8 第五個(gè)子控制器:可刪除的行 257
9.2.9 第六個(gè)子控制器:可編輯的詳細(xì)窗格 262
9.2.10 其他內(nèi)容 280
9.3 小結(jié) 282
第10章 storyboard 284
10.1 創(chuàng)建一個(gè)簡(jiǎn)單的storyboard 285
10.2 動(dòng)態(tài)原型單元 287
10.2.1 使用storyboard的動(dòng)態(tài)表內(nèi)容 288
10.2.2 編輯原型單元 289
10.2.3 實(shí)現(xiàn)表視圖數(shù)據(jù)源 290
10.2.4 它會(huì)加載嗎 292
10.3 靜態(tài)單元 293
10.3.1 實(shí)現(xiàn)靜態(tài)單元 293
10.3.2 實(shí)現(xiàn)表視圖數(shù)據(jù)源 294
10.4 大話segue 296
10.4.1 創(chuàng)建segue導(dǎo)航 296
10.4.2 設(shè)計(jì)storyboard 297
10.4.3 第一個(gè)segue 299
10.4.4 更為實(shí)用的任務(wù)列表 299
10.4.5 查看任務(wù)詳情 300
10.4.6 設(shè)置更多segue 301
10.4.7 從列表中傳遞任務(wù) 301
10.4.8 處理任務(wù)細(xì)節(jié) 303
10.4.9 回傳詳細(xì)信息 304
10.4.10 讓列表獲取詳細(xì)信息 305
10.4.11 小結(jié) 306
第11章 iPad開(kāi)發(fā)注意事項(xiàng) 307
11.1 分割視圖和浮動(dòng)窗口 307
11.1.1 創(chuàng)建SplitView項(xiàng)目 309
11.1.2 在storyboard中定義結(jié)構(gòu) 310
11.1.3 代碼定義功能 311
11.2 顯示總統(tǒng)信息 318
11.3 創(chuàng)建浮動(dòng)窗口 324
11.4 小結(jié) 329
第12章 應(yīng)用程序設(shè)置和用戶默認(rèn)設(shè)置 330
12.1 設(shè)置束 330
12.2 AppSettings應(yīng)用程序 331
12.2.1 創(chuàng)建項(xiàng)目 333
12.2.2 使用設(shè)置束 334
12.2.3 讀取應(yīng)用程序中的設(shè)置 346
12.2.4 注冊(cè)默認(rèn)值 350
12.2.5 更改應(yīng)用程序中的默認(rèn)設(shè)置 351
12.2.6 實(shí)現(xiàn)逼真效果 354
12.3 小結(jié) 357
第13章 保存數(shù)據(jù) 358
13.1 應(yīng)用程序的沙盒 358
13.1.1 獲取Documents目錄 360
13.1.2 獲取tmp目錄 360
13.2 文件保存策略 361
13.2.1 單個(gè)文件持久性 361
13.2.2 多個(gè)文件持久性 361
13.3 屬性列表 361
13.3.1 屬性列表序列化 362
13.3.2 持久性應(yīng)用程序的第一個(gè)版本 363
13.4 對(duì)模型對(duì)象進(jìn)行歸檔 368
13.4.1 符合NSCoding 368
13.4.2 實(shí)現(xiàn)NSCopying 369
13.4.3 對(duì)數(shù)據(jù)對(duì)象進(jìn)行歸檔和取消歸檔 370
13.4.4 歸檔應(yīng)用程序 371
13.5 使用iOS的嵌入式SQLite3 374
13.5.1 創(chuàng)建或打開(kāi)數(shù)據(jù)庫(kù) 375
13.5.2 綁定變量 376
13.5.3 SQLite3應(yīng)用程序 377
13.6 使用Core Data 383
13.6.1 實(shí)體和托管對(duì)象 385
13.6.2 Core Data應(yīng)用程序 388
13.7 小結(jié) 398
第14章 iCloud之旅 399
14.1 使用UIDocument管理文檔存儲(chǔ) 399
14.1.1 構(gòu)建TinyPix 400
14.1.2 創(chuàng)建BIDTinyPixDocument 401
14.1.3 主代碼 404
14.1.4 初始化storyboard 410
14.1.5 創(chuàng)建BIDTinyPixView 412
14.1.6 storyboard設(shè)計(jì) 416
14.2 添加iCloud支持 419
14.2.1 創(chuàng)建provisioning profile 420
14.2.2 啟用iCloud授權(quán) 420
14.2.3 如何查詢 421
14.2.4 保存在哪里 423
14.2.5 在iCloud上存儲(chǔ)首選項(xiàng) 423
14.3 小結(jié) 424
第15章 Grand Central Dispatch、后臺(tái)處理及其應(yīng)用 426
15.1 Grand Central Dispatch 426
15.2 SlowWorker簡(jiǎn)介 427
15.3 線程基礎(chǔ)知識(shí) 430
15.4 工作單元 430
15.5 GCD:低級(jí)隊(duì)列 431
15.5.1 傻瓜式操作 431
15.5.2 改進(jìn)SlowWorker 432
15.6 后臺(tái)處理 438
15.6.1 應(yīng)用程序生命周期 439
15.6.2 狀態(tài)更改通知 439
15.6.3 創(chuàng)建State Lab 441
15.6.4 執(zhí)行狀態(tài) 442
15.6.5 利用執(zhí)行狀態(tài)更改 444
15.6.6 處理不活動(dòng)狀態(tài) 444
15.6.7 處理后臺(tái)狀態(tài) 449
15.7 小結(jié) 457
第16章 使用Quartz和OpenGL繪圖 458
16.1 圖形世界的兩個(gè)視圖 458
16.2 Quart 2D繪圖方法 459
16.2.1 Quartz 2D的圖形上下文 459
16.2.2 坐標(biāo)系 460
16.2.3 指定顏色 461
16.2.4 在上下文中繪制圖像 463
16.2.5 繪制形狀:多邊形、直線和曲線 463
16.2.6 Quartz 2D工具采樣器:模式、梯度、虛線模式 464
16.3 QuartzFun應(yīng)用程序 465
16.3.1 構(gòu)建QuartzFun應(yīng)用程序 465
16.3.2 添加Quartz Drawing代碼 474
16.3.3 優(yōu)化QuartzFun應(yīng)用程序 478
16.4 GLFun應(yīng)用程序 481
16.4.1 構(gòu)建GLFun應(yīng)用程序 482
16.4.2 創(chuàng)建BIDGLFunView 482
16.4.3 更新BIDViewController 489
16.4.4 更新nib 490
16.4.5 完成GLFun 490
16.5 小結(jié) 490
第17章 輕擊、觸摸和手勢(shì) 491
17.1 多點(diǎn)觸控術(shù)語(yǔ) 491
17.2 響應(yīng)者鏈 492
17.2.1 響應(yīng)事件 492
17.2.2 轉(zhuǎn)發(fā)事件:保持響應(yīng)者鏈的活動(dòng)狀態(tài) 493
17.3 多點(diǎn)觸控體系結(jié)構(gòu) 494
17.4 4個(gè)手勢(shì)通知方法 494
17.5 檢測(cè)觸摸 495
17.6 檢測(cè)輕掃 498
17.6.1 使用自動(dòng)手勢(shì)識(shí)別 502
17.6.2 實(shí)現(xiàn)多個(gè)輕掃動(dòng)作 503
17.7 檢測(cè)多次輕擊 505
17.8 檢測(cè)捏合操作 509
17.9 創(chuàng)建和使用自定義手勢(shì) 512
17.9.1 CheckPlease應(yīng)用程序 512
17.9.2 CheckPlease觸摸方法 514
17.10 小結(jié) 516
第18章 Core Location定位功能 517
18.1 位置管理器 517
18.1.1 設(shè)置所需的精度 518
18.1.2 設(shè)置距離篩選器 518
18.1.3 啟動(dòng)位置管理器 519
18.1.4 更明智地使用位置管理器 519
18.2 位置管理器委托 519
18.2.1 獲取位置更新 519
18.2.2 使用CLLocation獲取緯度和經(jīng)度 519
18.2.3 錯(cuò)誤通知 521
18.3 嘗試使用Core Location 522
18.3.1 更新位置管理器 525
18.3.2 確定移動(dòng)距離 526
18.4 小結(jié) 527
第19章 陀螺儀和加速計(jì) 528
19.1 加速計(jì)物理學(xué) 528
19.2 不要忘記旋轉(zhuǎn) 529
19.3 Core Motion和動(dòng)作管理器 529
19.3.1 基于事件的動(dòng)作 530
19.3.2 主動(dòng)動(dòng)作訪問(wèn) 535
19.3.3 加速計(jì)結(jié)果 537
19.4 檢測(cè)搖動(dòng) 537
19.4.1 Baked-In搖動(dòng) 538
19.4.2 搖動(dòng)與擊碎 539
19.5 將加速計(jì)用做方向控制器 544
19.5.1 滾彈珠程序 545
19.5.2 編寫B(tài)all View 547
19.5.3 計(jì)算小球運(yùn)動(dòng) 549
19.6 小結(jié) 552
第20章 iPhone照相機(jī)和照片庫(kù) 553
20.1 使用圖像選取器和UIImagePickerController 553
20.2 實(shí)現(xiàn)圖像選取器控制器委托 555
20.3 實(shí)際測(cè)試照相機(jī)和庫(kù) 556
20.3.1 設(shè)計(jì)界面 557
20.3.2 實(shí)現(xiàn)照相機(jī)視圖控制器 558
20.4 小結(jié) 562
第21章 應(yīng)用程序本地化 563
21.1 本地化體系結(jié)構(gòu) 563
21.2 字符串文件 564
21.2.1 字符串文件里面是什么 565
21.2.2 本地化的字符串宏 565
21.3 現(xiàn)實(shí)中的iOS:本地化應(yīng)用程序 566
21.3.1 創(chuàng)建LocalizeMe 567
21.3.2 測(cè)試LocalizeMe 569
21.3.3 本地化nib文件 570
21.3.4 本地化圖像 573
21.3.5 生成和本地化字符串文件 575
21.3.6 本地化應(yīng)用程序顯示名稱 577
21.4 小結(jié) 578
第22章 未來(lái)之路 579
22.1 蘋果公司的文檔 579
22.2 郵件列表 579
22.3 論壇 580
22.4 網(wǎng)站 580
22.5 博客 581
22.6 會(huì)議 582
22.7 作者 582
22.8 再會(huì) 583
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 保存更改,先試運(yùn)行一下這個(gè)版本的Persistence。 更改的東西不多。首先我們指定了一個(gè)新的文件名,以避免應(yīng)用加載舊的屬性列表作為歸檔。我們還定義了一個(gè)新的常量,作為編碼和解碼的鍵/值。然后我們重新編寫加載和保存代碼,使用BIDFourLines保存數(shù)據(jù),并且使用NSCodin9的方法完成實(shí)際的加載和保存工作。GUl與上一個(gè)版本完全相同。 新版本需要比屬性列表序列化多實(shí)現(xiàn)幾行代碼,因此你可能想知道使用歸檔是否比使用序列化屬性列表更有優(yōu)勢(shì)。對(duì)于該應(yīng)用程序,答案非常簡(jiǎn)單:實(shí)際上并非如此。但是回想第9章中的最后一個(gè)示例,在該示例中,我們?cè)试S用戶編輯總統(tǒng)列表,每個(gè)總統(tǒng)共有4個(gè)不同的可以編輯的字段。要使用屬性列表處理對(duì)總統(tǒng)列表的歸檔,需要涉及迭代總統(tǒng)列表、為每個(gè)總統(tǒng)創(chuàng)建一個(gè)NSDictionary實(shí)例、將每個(gè)字段中的值復(fù)制到NSDictionary實(shí)例、將該實(shí)例添加到另一個(gè)數(shù)組,然后將該數(shù)組寫入屬性列表文件。當(dāng)然,這是假設(shè)我們將自己局限于只使用可序列化的屬性。否則,如果不做大量轉(zhuǎn)換工作就根本不能使用屬性列表序列化。 另一方面,如果我們擁有一個(gè)可歸檔對(duì)象的數(shù)組(如我們剛才構(gòu)建的BIDFourLines類),則可以通過(guò)對(duì)數(shù)組實(shí)例本身進(jìn)行歸檔來(lái)歸檔整個(gè)數(shù)組。歸檔集合類(女HNSArray)時(shí),也歸檔其包含的所有對(duì)象。只要放人數(shù)組或字典中的每個(gè)對(duì)象都符合NSCodin9,你就可以歸檔數(shù)組或字典并還原它。另外,當(dāng)你對(duì)其進(jìn)行歸檔時(shí),其中的所有對(duì)象都將位于已還原數(shù)組或字典中。 換句話說(shuō),該方法可以適當(dāng)伸縮(至少對(duì)于代碼多少而言),因?yàn)闊o(wú)論你添加多少對(duì)象,將這些對(duì)象寫入磁盤的方式(假設(shè)你使用單個(gè)文件持久性)都完全相同。但使用屙|生列表,工作量會(huì)隨著添加的每個(gè)對(duì)象而增加。 1 3.5 使用iOS的嵌入式SQLite3 我們將要討論的第三個(gè)持久性選項(xiàng)是iOS的嵌人式SQL數(shù)據(jù)庫(kù),名為SQLite3。SQLite3在存儲(chǔ)和檢索大量數(shù)據(jù)方面非常有效。它還能夠?qū)?shù)據(jù)進(jìn)行復(fù)雜的聚合,與使用對(duì)象執(zhí)行這些操作相比,獲得結(jié)果的速度更快。 例如,如果應(yīng)用程序需要計(jì)算應(yīng)用程序中所有對(duì)象中特殊字段的總和,或者如果需要只符合特定條件的對(duì)象的總和,SQLite3將可以執(zhí)行該操作,而不需要將每個(gè)對(duì)象加載到內(nèi)存中。從SQLite3獲取聚合比將所有對(duì)象加載到內(nèi)存中,然后計(jì)算它們值的總和要快幾個(gè)數(shù)量級(jí)。作為一個(gè)羽翼豐滿的嵌入式數(shù)據(jù)庫(kù),SQLite3包含使其速度更快(例如,通過(guò)創(chuàng)建可以加快查詢速度的表索引)的工具。
媒體關(guān)注與評(píng)論
“我是iOS開(kāi)發(fā)平臺(tái)的鐵桿粉絲,讀過(guò)相當(dāng)多iOS開(kāi)發(fā)方面的圖書,強(qiáng)烈為初學(xué)者推薦本書,絕對(duì)不會(huì)讓你失望!”——StackOverflow評(píng)論
編輯推薦
《iOS 5基礎(chǔ)教程》英文原版自第1版問(wèn)世以來(lái)在亞馬遜計(jì)算機(jī)圖書排行榜持續(xù)雄踞榜首,總排名一度在20名左右,被奉為經(jīng)典。而《iOS 5基礎(chǔ)教程》中文版出版后也迅速榮登各大網(wǎng)店排行榜榜首,并創(chuàng)造了不到半年就印刷四次的銷售奇跡。美國(guó)Dave Mark、Jack Nutting、Jeff LaMarche編著的《iOS 5基礎(chǔ)教程》從到蘋果公司網(wǎng)站注冊(cè)賬號(hào)、下載和安裝相關(guān)工具開(kāi)始,清晰透徹地講述了創(chuàng)建iOS應(yīng)用程序的全過(guò)程。作者在探討基本概念和各個(gè)關(guān)鍵特性時(shí),提供了豐富的實(shí)例。更難得的是,《iOS 5基礎(chǔ)教程》始終強(qiáng)調(diào)iOS開(kāi)發(fā)中的各種最佳實(shí)踐,即使是有經(jīng)驗(yàn)的開(kāi)發(fā)人員,也會(huì)受益匪淺?!秈OS 5基礎(chǔ)教程》新版針對(duì)iOS5和最新發(fā)布的SDK做了大幅修訂,力求使新老讀者都覺(jué)得物有所值。作者使用Xcode 4. 2重寫了所有項(xiàng)目代碼,使之兼窖新IBSDK,還專設(shè)兩章介紹iOS5新特性storyboard和iCloud,這些新特性大大增強(qiáng)了iOS對(duì)開(kāi)發(fā)人員的吸引力。
名人推薦
“教程類的書,必須要抓住重點(diǎn),最好還能給出有針對(duì)性的示例和練習(xí)題。我看過(guò)很多關(guān)于iOS開(kāi)發(fā)的書,只有這本書符合我對(duì)教程的期望!”——David Thompson,iOS專家,Reticulated Ventures公司CEO
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載