-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
10/8 新書到! 10/1 新書到! 9/24 新書到! 9/18 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Core Data應用開發實踐指南

( 簡體 字)
作者:(美)Tim Roadley 著類別:1. -> 程式設計 -> 綜合
譯者:
出版社:機械工業出版社Core Data應用開發實踐指南 3dWoo書號: 40410
詢問書籍請說出此書號!

有庫存
NT售價: 395

出版日:12/1/2014
頁數:382
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111482260
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

無數Apple設備運行著依賴于Core Data的應用程序。這使得Core Data成了一個成熟、穩定且非常快速的平臺,以供應用程序訪問其數據。Core Data本身并不是數據庫,它其實是一個擁有諸多功能的框架,而其中一項功能就是把應用程序同數據庫之間的交互過程自動化。有了它之后,就不用再編寫SQL代碼了,而是可以改用Objective-C對象來做。這樣一來,既能享受到關系型數據庫的好處,又無須在Objective-C代碼中編寫、測試并優化SQL查詢語句。Core Data會在幕后自動生成SQL代碼,而Apple公司的專業技術人員已經對這種SQL代碼做了多年的改良與優化。使用Core Data不僅能縮短應用程序開發時間,而且還能顯著減少開發者所要編寫的代碼量。

Core Data的顯著特性有:

變更管理(撤銷與重做)

關系(relationship)

數據模型的版本管理及遷移

(通過batching及faulting)高效地獲取數據

(通過謂詞)高效地過濾數據

數據一致性及數據驗證

本書將介紹Core Data的特性及最佳實踐技巧。在學習各章的過程中,你會明白如何從頭開始構建一款功能完備的Core Data iPhone應用程序。筆者會詳細解釋每個關鍵的知識點,使你能夠直接把學到的內容付諸實踐。本書所展示的范例程序會盡量把Core Data的各個方面都納入其中。同時,它還是個已在App Store上架的真實應用程序。這更有助于你把學到的知識與現實工作中的場景聯系起來。

隨著iOS 7的到來,Core Data與iCound之間的集成在速度、可靠性及簡潔程度上都有了大幅改觀。對原來放棄了這項技術的人,筆者建議你再試一次,這回肯定能給你帶來驚喜。

如果你想對本書內容提供反饋、bug修復及勘誤,或想為本書后續版本出力,請通過電子郵箱timroadley@icloud.com聯系筆者。最后,感謝你關注此書。筆者花了大量時間來精心編排內容,也衷心希望它能幫助你掌握Core Data這項出色的技術。

本書的目標讀者

本書寫給那些想在iOS app中高效管理數據的Objective-C程序員。如果原來有數據庫方面的經驗,那么某些內容學起來可能會快一些,但沒有數據庫經驗的程序員也同樣可以閱讀本書。某些固守舊習的SQL程序員可能很難適應Core Data的一些用法。但無論你的技術背景是什么,都無需擔心,因為筆者會把每個步驟都解釋得非常清楚。

學習本書所需的材料和知識

身為Objective-C程序員,你應該裝有比較新的Mac系統,并運行Xcode 5或更新的版本。同時還應該非常熟悉Xcode并且擁有一部iOS設備,以便測試。iOS設備對本書第10章尤其重要,因為整章都在談設備性能問題。

你應該知道Objective-C中一些術語的含義,例如property(特性)、method(方法)、delegate(代理)、class(類)和class instance(類實例)。若你無法確定本書是否適合自己,建議你先看看下面這些資料:

《iOS Programming: The Big Nerd Ranch Guide》 (請搜索amazon.com網站)

《The iOS Newbie Tutorial Series》(請搜索timroadley.com網站)

《Learning Objective-C: A Primer》 (請搜索apple.com網站)

本書結構

本書將指導你完成Grocery Dude與Grocery Cloud的整個構建過程,二者均是在App Store上架的應用程序。Grocery Dude演示了Core Data如何與iCound集成,而Grocery Cloud則演示了Core Data如何與StackMob集成。本書的每一章都要用到上一章所講的知識,而按照各章順序也會看到所需實現的內容。在這個過程中,我們要構建一些輔助類(helper class),以便更快地重新部署已經完成的這部分應用程序。實際上,第15章最后的那個習題就會引導你把這些輔助類重新部署到既有的非Core Data應用程序上面。你很快就能擁有一款功能完備的Core Data app了,它會與iCound可靠地集成起來。

現將每章內容簡述如下:

第1章 初次嘗試Core Data應用程序—此章是本書的基礎,筆者會在其中介紹Core Data的基本概念,還會告訴你關于Core Data的兩個重要方面,就是“它能做什么”以及“它不能做什么”。此外,還會實現CoreDataHelper類,用以演示如何將Core Data同既有的應用程序相集成。

第2章 托管對象模型的基礎知識—這一章將對比傳統數據庫模式的設計與Core Data之間有何共性,并介紹數據模型。在討論實體(entity)和屬性的時候,你將看到如何配置基本的托管對象模型(managed object model),同時筆者還會給出建議,告訴你如何選擇合適的數據類型。此外還會講解怎樣插入、獲取、過濾、排序及刪除“托管對象”,其后還會介紹獲取請求(fetch request)模板。

第3章 托管對象模型的遷移—本章將會講解三種遷移方式,分別是:輕量級遷移、默認遷移以及采用遷移管理器來遷移,其中,遷移管理器可以顯示遷移的進度。你將學到如何在各種遷移方式之間做出明智的抉擇,同時還將學會適應Core Data的模型版本管理(model-versioning)功能。

第4章 托管對象模型的擴展—筆者會解釋各種關系并將其添加到Grocery Dude程序中,此時關系數據模型的強大之處就能體現出來了。模型的其他特性,諸如抽象實體及父實體也會在這一章里講到,同時筆者還會告訴你一些處理數據驗證錯誤的技術。

第5章 表格視圖—用Core Data及獲取結果(fetched result)控制器來驅動表格視圖(table view),既可節省內存,又能提升效率,而且這么做也會令應用程序初具規模。當然,大部分的例行任務都是由CoreDataTVC來完成的,這是個可以復用的子類,繼承自UITableViewController。只需把這個子類放到你自己的應用程序里,就能輕松地部署好一份由Core Data所驅動的表格視圖了。

第6章 視圖—本章將展示怎樣在應用程序里傳遞托管對象,由此可以學會如何操作它們。在表格視圖里選定的對象可以傳給下一個視圖,以供編輯。本章會給Grocery Dude加上編輯用的界面,以演示如何操作傳過來的對象,并且還會演示如何將其存回持久化存儲區里面。

第7章 選取器視圖—本章會把由Core Data所驅動的選取器視圖(Picker View)添加到編輯視圖里面,這樣可以令應用程序更加精致。用戶可以通過選取器視圖將某種計量單位、家庭住址或商鋪地址快速地設定到現有的貨品上面。筆者專門制作了一個可以復用的子類—CoreDataPickerTF,它繼承自UITextField,當用戶點擊相關的文本框時,這個子類可以用由Core Data所驅動的選取器視圖來取代默認的輸入鍵盤。

第8章 預先加載數據—本章將會解釋如何用XML中的默認數據來生成持久化存儲區,同時還會介紹通用的輔助類CoreDataImporter。為Grocery Dude程序準備好持久化存儲區之后,筆者將演示如何判斷是否需要導入默認數據(有時用戶可能根本不想導入數據)。

第9章 深拷貝—與migratePersistentStore相比,深拷貝(deep copy)更加靈活也更加精細,它可以從選定的實體中把對象與關系由一個持久化存儲區拷貝到另一個存儲區中。本章將改進CoreDataImporter這個輔助類,為其增加深拷貝功能。

第10章 性能—編寫Core Data應用程序的時候,很容易出現一些常見的性能問題,你將會通過本章學到如何用Instruments來判斷并解決這些問題,并可以由此積累經驗。筆者給程序加入照相功能,是為了把性能問題凸現出來,從而使大家明白:要想編出性能優秀的應用程序,就必須把模型設計好。

第11章 后臺處理—性能一流的程序會把繁重的處理任務轉交給后臺線程來做。筆者將通過名為Thumbnailer的輔助類來添加相片縮略圖生成功能,由此你會看到在后臺處理任務其實是非常簡單的。

第12章 搜索—本章將會在CoreDataTVC里實現高效的搜索功能,你將學到如何在同一個表格視圖中處理兩個獲取結果控制器。

第13章 與Dropbox相結合的備份與恢復—本章將會講解如何創建備份文件以及如何用Dropbox的Sync API來同步這些文件。我們還會實現數據恢復功能:用戶只需按一下按鈕,就能把同一個Dropbox賬戶中的數據恢復到任意iOS設備中。

第14章 iCloud—本章將會講解Core Data與iCloud的集成,這種集成方式目前是最簡單、最可靠的。iCloud可以安全地處理多個賬戶及各種配置信息,不會有絲毫損失。

第15章 iCloud高級使用技巧—本章將會進一步提升Core Data與iCloud的集成幅度,以實現實體級別的數據散播(entity-level seeding)及去除重復數據(de-duplication)的功能(該功能可以保證每個對象只存儲一份)。此外,你還會學到如何通過正確的方式來準確地模擬用戶第一次使用iCloud時的情形,這種方式可以把相關的內容全部重置。

第16章 與Web Service相集成—本章通過StackMob來介紹如何在多個用戶之間進行跨平臺的數據分享及協作。 StackMob是個極為優秀的免費BaaS(Backend-as-a-Service的縮寫),它直接提供了針對Core Data的iOS API。 StackMob允許筆者在書中使用其美術資源,并且對本書第16章有所幫助,筆者在此對StackMob表示感謝。

附錄A 為第1章的Grocery Dude程序所做的準備工作—本書第1章要以Grocery Dude程序為起點展開講解,為了更完整地演示此程序的制作過程,筆者把程序里面與Core Data無關的步驟都放在了這個附錄中。

附錄B 為第16章的Grocery Cloud程序所做的準備工作—本書第16章要以Grocery Cloud程序為起點展開講解,為了更完整地演示此程序的制作過程,筆者把程序里面與Core Data無關的步驟都放在了這個附錄中。

范例代碼獲取方式

本書范例代碼均可從timroadley.com網站下載。每一章都會給出相關的鏈接,也可以參考表1,該表按照實現的先后順序列出了各范例代碼的下載鏈接。

表1 Grocery Dude代碼下載鏈接匯總



請注意,有時候一行代碼會比較長,從而超出了書的寬度。在這種情況下,筆者用“代碼接續箭頭”()來表示換行。例如:



致謝

首先感謝Trina MacDonald給了我寫作本書的機會,她在成書過程中亦對筆者提供了莫大的幫助,而Rich Warren、Carl Brown、Mark Granoff及Ricky O扴ullivan這四位技術評審也做得相當出色。筆者熬夜寫書時肯定出了一些差錯,你們都幫著找了出來,并提供了一些獨到的見解和代碼編寫技巧。此外還要特別感謝Betsy Gratner、Olivia Basegio、Bart Reed、Sheri Cain、Chris Zahn及Matt Vaznaian在成書過程中對筆者的協助。



—Tim Roadley(Twitter用戶名:@TimRoadley)
內容簡介:

通過大量實例深度剖析Core Data應用開發的全過程,不僅詳細講解了Core Data的基礎知識、功能特性、新的編程范式和實用開發技巧,而且還講解了Core Data如何與iCound和StackMob集成,可以幫助讀者迅速掌握Core Data的用法并具備實戰能力。
本書共分16章:第1章講解Core Data應用程序的基礎知識并演示如何為范例程序添加Core Data支持;第2~4章介紹托管對象模型的基礎知識、遷移和擴展;第5章探討如何用Core Data及獲取結果控制器來驅動表格視圖;第6章展示怎樣在應用程序里傳遞托管對象;第7章講解如何把由Core Data所驅動的選取器視圖添加到編輯視圖中;第8章解釋如何用XML中的默認數據來生成持久化存儲區;第9章講解如何利用深拷貝從選定的實體中把對象與關系由一個持久化存儲區拷貝至另一個存儲區中;第10章探討如何用Instruments來判斷并解決性能問題;第11章講解如何由后臺進程來處理任務;第12章介紹在CoreDataTVC里如何實現高效的搜索功能;第13章講解如何創建備份文件,以及如何用Dropbox的Sync API來同步文件;第14章講解Core Data與iCloud的集成;第15章介紹如何進一步提升Core Data與iCloud的集成幅度;第16章通過StackMob來介紹如何在多個用戶之間進行跨平臺的數據分享及協作。
這是一本全面涵蓋蘋果開發平臺新特性的Core Data教程,其中講到了Apple對iCloud所做的重大改進。本書按步驟講解程序開發的全過程,引領讀者使用Storyboard、ARC(自動引用計數)和Xcode 創建出一款由數據所驅動的iOS 應用程序。
書中介紹了一些新的編程范式及開發技巧,幫助讀者克服Core Data開發中的各種困難。開發過程分為很多小的步驟,在學習這些步驟的過程中,你將不斷豐富自己的編程技能,而且還能掌握一些高階技巧,例如復雜模型的遷移、深拷貝、后臺處理,以及同Dropbox、StackMob、iCloud的集成等。
本書每一章都提供了網址,讀者可以從中下載與該章進度相對應的范例項目,以便準確地了解項目在每個階段的狀況,另外,你也可以把這種按步驟實現出來的代碼運用到自己的項目中。每章后面都有一些習題,無論你是自學者,還是參加iOS開發課程的學生,都可以通過這些題目來進一步探索Core Data領域。
本書提供了許多技巧、工具、代碼和編程范式,如果你是一位有經驗的iOS開發者,那么可以利用這些內容,輕而易舉地為任意一款應用程序迅速添加強大的數據管理功能。
通過閱讀本書,你將學到:
理解Core Data的概念
為既有項目添加Core Data支持
設計數據模型、升級數據模型、遷移數據模型(包括自動遷移和能夠顯示出遷移進度的手動遷移)
用數據來填充表格視圖、選取器視圖等視圖界面
預先把一些默認數據放在XML格式的持久化存儲區里,然后在程序運行時將其加載進來
通過深拷貝的方式,把一個持久化存儲區中的數據復制到另一個里面
以大尺寸照片為例,演示如何通過Instruments等工具來優化程序性能
以縮略圖的生成為例,演示如何實現后臺處理
實現高效的搜索功能
與Dropbox相結合,實現流暢的數據備份及數據恢復功能
與iCloud穩固地集成起來,以便完全支持多賬號登錄、數據散播和去除重復數據等功能
以StackMob為例,演示如何把Core Data程序同Web服務相集成
目錄:

譯者序

前 言

第1章初次嘗試Core Data應用程序1

1.1 Core Data是什么1

1.2 Core Data的適用場合4

1.3 創建Grocery Dude項目5

1.4 為現有的應用程序添加Core Data支持6

1.5 小結15

1.6 習題15

第2章托管對象模型的基礎知識17

2.1 托管對象模型是什么17

2.2 添加托管對象模型18

2.3 實體18

2.4 屬性20

2.5 Integer 16、Integer 32與Integer 6421

2.6 單精度浮點數與雙精度浮點數22

2.7 屬性的各種設置選項25

2.8 創建NSManagedObject的子類27

2.9 Scalar Properties for Primitive Data Types選項28

2.10 代碼片段:demo方法29

2.11 創建托管對象29

2.12 后端SQL的可見性31

2.13 獲取托管對象34

2.14 刪除托管對象39

2.15 小結40

2.16 習題40

第3章托管對象模型的遷移42

3.1 修改托管對象模型42

3.2 添加模型版本43

3.3 輕量級的遷移方式45

3.4 默認的遷移方式48

3.5 通過遷移管理器來遷移數據52

3.6 小結62

3.7 習題63

第4章托管對象模型的擴展64

4.1 關系64

4.2 Delete規則69

4.3 數據驗證錯誤73

4.4 實體繼承77

4.5 小結81

4.6 習題81

第5章表格視圖82

5.1 表格視圖基礎82

5.2 由Core Data所驅動的表格視圖83

5.3 創建CoreDataTVC84

5.4 DELEGATE:NSFetchedResultsController88

5.5 AppDelegate的CoreDataHelper實例93

5.6 創建PrepareTVC94

5.7 創建ShopTVC105

5.8 小結110

5.9 習題110

第6章視圖111

6.1 概述111

6.2 范例程序所需的視圖層級112

6.3 創建ItemVC113

6.4 DELEGATE: UITextField 121

6.5 貨品的計量單位、在家中的位置以及在商店中的位置127

6.6 小結141

6.7 習題141

第7章選取器視圖143

7.1 概述143

7.2 創建CoreDataPickerTF144

7.3 DELEGATE+DATASOURCE:UIPickerView146

7.4 創建UnitPickerTF151

7.5 創建LocationAtHomePickerTF158

7.6 創建LocationAtShopPickerTF160

7.7 使選取器不遮住文本框167

7.8 小結170

7.9 習題170

第8章預先加載數據171

8.1 默認的數據171

8.2 判斷應用程序是否需要導入數據172

8.3 從XML中導入數據174

8.4 創建導入默認數據所需的上下文177

8.5 防止重復導入默認數據178

8.6 觸發導入默認數據的操作178

8.7 創建CoreDataImporter180

8.8 選定各實體的Unique 屬性185

8.9 把XML中的數據映射到實體的屬性186

8.10 從持久化存儲區中導入數據189

8.11 小結192

8.12 習題193

第9章深拷貝194

9.1 概述194

9.2 配置拷貝源數據所用的Core Data棧197

9.3 增強CoreDataImporter類200

9.4 觸發深拷貝210

9.5 小結214

9.6 習題214

第10章性能216

10.1 發現性能問題216

10.2 實現拍照功能217

10.3 生成測試數據222

10.4 用SQLDebug測量性能225

10.5 用Instruments測量性能227

10.6 改善程序性能229

10.7 清理237

10.8 小結237

10.9 習題237

第11章后臺處理239

11.1 后臺保存239

11.2 后臺處理244

11.3 建立Faulter類245

11.4 建立Thumbnailer類249

11.5 小結254

11.6 習題254

第12章搜索256

12.1 修改CoreDataTVC類257

12.2 修改PrepareTVC類264

12.3 小結268

12.4 習題268

第13章與Dropbox相結合的備份與恢復270

13.1 與Dropbox相集成271

13.2 在CoreDataHelper類中準備相關代碼279

13.3 構建DropboxHelper類280

13.4 構建DropboxTVC類287

13.5 小結297

13.6 習題298

第14章 iCloud300

14.1 概述300

14.2 啟用iCloud302

14.3 為CoreDataHelper類添加iCloud功能303

14.4 Debug Navigator310

14.5 禁用iCloud310

14.6 小結316

14.7 習題316

第15章 iCloud高級使用技巧318

15.1 去除重復數據318

15.2 散播數據327

15.3 打造干凈的開發環境333

15.4 Core Data程序的配置335

15.5 收尾工作336

15.6 小結337

15.7 習題337

第16章與Web服務相集成343

16.1 StackMob簡介343

16.2 StackMob SDK345

16.3 創建StackMob應用程序346

16.4 準備托管對象模型347

16.5 配置StackMob客戶端349

16.6 SAVING 351

16.7 響應底層數據的變更353

16.8 自動生成Schema354

16.9 Schema的權限356

16.10 認證358

16.11 使程序保持響應369

16.12 小結370

16.13 習題371

附錄A 為第1章的Grocery Dude程序所做的準備工作372

附錄B 為第16章的Grocery Cloud程序所做的準備工作377
序: