ios資料庫套用高級編程

ios資料庫套用高級編程

如果你是一名有經驗的開發者並對開發以數據為中心的iPhone和iPad應用程式感興趣,那么《iOS資料庫套用高級編程(第2版)》恰好適合你。這本必須擁有的書進行了新的充分修訂,並且在結構上對應企業應用程式的數據流。該書作者Patrick Alessi經驗豐富,他先向你演示了如何從大規模資料庫獲取數據並將數據放入設備上和顯示該數據。然後講解了如何直接在設備上建立數據,並和Web服務通信。在本書的最後,你將能自信地為iPhone和iPad實現數據驅動應用程式並將iOS應用程式和現有的企業系統集成。

基本介紹

  • 中文名:ios資料庫套用高級編程
  • 外文名:Professional IOS Database Application Programming
  • 作者:艾烈希 (Patrick Alessi)
  • 類型:計算機與網際網路
  • 出版日期:2014年7月1日
  • 語種:簡體中文
  • ISBN:7302369569
  • 譯者:馮寶隆
  • 出版社:清華大學出版社
  • 頁數:340頁
  • 開本:16
基本介紹,內容簡介,作者簡介,圖書目錄,序言,

基本介紹

內容簡介

《ios資料庫套用高級編程(第2版)》的最後,你將能自信地為iPhone和iPad實現數據驅動應用程式並將iOS應用程式和現有的企業系統集成。

作者簡介

Patrick Alessi為包括小型企業和美國空軍在內的客戶建立以數據為中心的應用程式。他建立了MotivationalQuotes和CNodes套用。他是Professional iPhone and iPad Database Application Programming 和《iOS遊戲開發入門經典》的作者。當前,他努力專注於為移動設備建立移動和互聯應用程式。

圖書目錄

第Ⅰ部分操作和顯示iPhone和iPad上的數據
第1章數據驅動應用程式介紹3
11創建一個簡單的數據驅動應用程式4
111創建項目4
112添加UITableView6
113獲取數據9
114實現數據模型類9
115顯示數據12
12深入研究17
121設計模式17
122讀取文本檔案18
13前往下一章18
第2章iOS資料庫:SQLite19
21什麼是SQLite20
211SQLite庫20
212SQLite和CoreData20
22創建一個簡單的資料庫21
221設計資料庫22
222創建資料庫24
223填充資料庫26
224可視化SQLite資料庫的工具30
23連線到資料庫32
231啟動項目33
232模型類35
233DBAccess類37
234參數化查詢45
235寫入資料庫46
236顯示目錄47
237查看產品詳情49
24前往下一章53
第3章使用UITableView顯示數據55
31定製表視圖55
311表視圖單元格樣式56
312將子視圖添加到contentView59
313子類化UITableViewCell63
32實現區段和索引69
33實現搜尋76
34最佳化表視圖性能81
341重新使用現有的單元格82
342不透明的子視圖83
343使用drawRect自定義繪製單元格84
344配件視圖的用戶界面約定84
35前往下一章85
第4章用戶界面元素87
41使用故事板創建界面87
411開始創建故事板示例應用程式89
412向故事板中添加Sub—detail螢幕90
413向故事板中添加模態螢幕90
42使用分隔視圖控制器顯示主/從數據91
421UISplitViewController簡介92
422UISplitViewControllerDelegate協定93
423開始實現分隔視圖示例應用程式94
424創建Detail界面96
425使用主/從視圖添加調查97
43在彈出視窗中顯示數據103
431創建InfoViewController104
432顯示UIPopoverController105
44手勢識別106
441UIGestureRecognizer類106
442使用手勢識別器107
45檔案共享支持111
451在示例應用程式中啟用檔案共享111
452序列化調查數據數組112
453反序列化並載入調查數據數組113
454共享數據114
46前往下一章116
第Ⅱ部分使用CoreData管理數據
第5章CoreData介紹119
51CoreData基礎120
52CoreData架構120
521CoreData棧120
522SQLite和CoreData122
53CoreData和iCloud123
54數據保護123
55一個簡單的使用CoreData實現的任務管理器124
551創建項目125
552檢查模板代碼125
553修改模板代碼137
56前往下一章142
第6章在Xcode中對數據建模143
61模型化數據143
611定義實體和它們的特性145
612添加實體間的關係149
613創建獲取屬性和獲取請求模板151
62創建定製NSManagedObject子類154
621實現驗證規則156
622實現默認值157
63創建任務模型157
64前往下一章159
第7章創建CoreData應用程式161
71任務應用程式架構161
711數據模型162
712類模型162
713用戶界面163
72編寫應用程式代碼164
73MasterViewController和基本用戶界面164
74產生託管對象子類168
75添加和查看任務169
751創建ViewTaskController169
752修改MasterViewController173
76創建編輯控制器176
761使用EditTextViewController編輯文本176
762使用EditPriorityViewController設定優先權181
763使用EditLocationViewController添加和編輯位置185
764使用EditDateController修改日期191
765完成編輯控制器196
77在MasterViewController中顯示結果198
771使用NSSortDescriptor排序結果199
772使用NSPredicate過濾結果200
78使用NSFetchedResultsController創建分組表201
79實現定製託管對象206
791編寫動態屬性代碼206
792運行時默認值207
793驗證單個欄位208
794多欄位驗證209
710前往下一章211
第8章和CoreData相關的Cocoa特性213
81鍵—值編碼213
811鍵和鍵路徑214
812使用鍵設定值216
813集合操作符216
814使用KVC時額外要考慮的事217
82鍵—值觀察218
821觀察對象的改變218
822自動和手動實現KVO219
823鍵—值觀察示例219
83使用NSPredicate225
831創建謂詞225
832使用謂詞228
84排序描述符228
85前往下一章229
第9章CoreData遷移和性能231
91模型版本控制和架構遷移231
911模型版本控制233
912輕量遷移235
913生成映射模型237
92執行緒安全與CoreData241
921執行緒設計241
922執行緒和CoreData242
923執行緒和NSOperation242
924CoreData執行緒處理示例243
93CoreData性能251
931故障251
932數據存儲類型252
933存儲二進制數據252
934實體繼承253
935運行時性能254
936使用獲取結果控制器管理變化254
94使用Instruments進行性能分析257
941啟動Instruments258
942Instruments界面258
943CoreData儀表259
95前往下一章260
第Ⅲ部分使用Web服務集成應用程式
第10章在iPhone上使用XML263
101iOSSDK和Web263
1011Web應用程式架構264
1012同步數據獲取264
1013URL載入系統265
1014Web訪問示例266
1015從伺服器請求數據268
102XML和iPhoneSDK275
1021XML簡要概述275
1022使用NSXML解析器解析XML276
1023擴展示例,解析XML277
1024使用libxml生成XML283
1025XML生成示例284
103前往下一章290
第11章使用Web服務進行集成291
111網路應用程式架構291
1111兩層架構292
1112三層架構(n層)293
1113應用程式通信294
112Web服務介紹294
1121SOAP訊息295
1122REST協定297
113示例1:基於位置的搜尋297
1131開始298
1132創建界面299
1133CoreLocation299
1134本地搜尋API302
1135使用搜尋欄304
1136處理Web服務回響307
114示例2:內容分析318
1141開始319
1142創建用戶界面320
1143實現POST調用321
1144接收XML回響324
1145解析回響XML325
1146完成327
115前往下一章327
附錄A應用程式故障診斷工具329
A1Instruments329
A11啟動Instruments330
A12跟蹤文檔331
A13Objective—C記憶體管理332
A14記憶體泄漏示例應用程式334
A15在Instruments中分析記憶體泄漏335
A2靜態分析器338

序言

作 者 簡 介
在1980 年,當Patrick Alessi 第一次看到他的名字在終端上閃過時,他就迷戀上了編寫電腦程式。從那以後,他開始使用各種語言為他能獲得的硬體平台編寫軟體,包括在他接受工程教育期間對VAX 系統上的Fortran 語言的短暫而痛苦的嘗試。Patrick 從美國羅格斯大學獲得了土木工程學士學位,然後又從美國史蒂文斯理工學院獲得了計算機科學學士學位。
在專業領域,Patrick 主要研究以數據為中心的應用程式,其客戶範圍小到小型企業資料庫,大到美國空軍的大規模系統。當前,他關注於移動開發的前景,並為如iPhone 和iPad這樣的移動設備開發網路應用程式。
Patrick 工作之餘喜歡玩遊戲(尤其是“星際爭霸”)、攝影、旅行和與家人在一起。你可以關注他的推特pwalessi,或訪問他的部落格。
技術編輯簡介
Michael Gilbert 是一名在各種工程公司工作過的資深系統程式設計師。他的第一個遊戲是在Atari ST 上開發的,並且他是STart 雜誌的特約編輯,經常在該雜誌上發表文章。多年以來,他一直在為世界範圍內的用戶開發PC 和Mac 上的遊戲軟體。他還是一位專業的Flash ActionScript 程式設計師,並且開發了一個名為HigherGames 的流行網際網路遊戲環境。現在他喜歡開發iPhone 和iPad 遊戲,並且當前已經在App Store 上發布了幾款遊戲,並且將來還會發布更多。在業餘時間他喜歡和他的妻子Janeen 一起玩拼字遊戲。
致 謝
我要藉此機會感謝每位促成這本書出版的人。首先我要感謝我的策劃編輯Mary James,本書的第2 版在她的領導下完成了策划過程。其次我要感謝我的項目編輯Brian MacDonald,他幫助我解決了在寫作和出版過程中出現的每個問題。我還要感謝我的技術編輯Mike Gilbert,他利用寶貴的套用開發時間來審查我的作品。最後我要感謝所有其他編輯和製作人員,他們投入了大量時間在本項目上從而使它最終能夠印刷。
對於我的妻子Cheryl 和我的繼女Morgan,我無論如何感謝都不為過。在我編寫本書的整個期間,她們容忍了我的壞脾氣,還容忍了我沒時間參加有趣的家庭活動。在我編寫本書的工作時她們操持家務。你們對我的耐心是令人震驚的。我還想要感謝我的媽媽,在我非常小的時候她就引導我學習計算機並教會了我計算機的基礎知識。最後我想要感謝我的爸爸,他促使我努力工作並讓我明白了如何成為一名父親。

前 言
隨著iPhone 的推出,蘋果公司徹底改變了移動計算市場。iPhone 將行動電話從一台用來打電話、檢查電子郵件和查找電影場次的設備轉換為一台幾乎可以運行任何類型的應用程式的計算機。自從iPhone 在2007 年發布以來,開發人員已經編寫了超過70 萬種可在iOS設備上運行的應用程式。這些應用程式可分為很多種類型,包括遊戲、實用工具、社交網路、參考、導航和商務等類型。
計算領域的趨勢正在趨向於可移動性和移動平台,如iPhone 和iPad,並且正在遠離基於桌面的環境。尤其在商業和企業環境中,決策者想要一天24 小時方便快捷地訪問他們的數據。iPhone 和iPad 是移動計算的理想平台,因為它們具有合適的結構因素和廣泛的庫和API 集合。
儘管市場上有很多非常好的iOS 軟體開發方面的書籍,但我不能找到一本專門面向企業開發者的書籍,這些企業開發者需要使企業數據或商業應用程式具有可移動性。我編寫此書的最初目的是向這些開發者提供這樣的信息,他們可用這些信息從後台伺服器獲得企業數據,並在可移動設備上顯示和操作這些數據,然後獲得合適的返回給他們的企業信息系統的信息。
在我編寫這本書的過程中,有一個事實變得清晰起來,那就是除了我在開始時提到的業務用例,我在本書中介紹的工具和技術還適合大多數應用程式類型。任何類型的應用程式的開發者,只要他需要在iOS 上存儲數據,就都會對Core Data API 的廣泛覆蓋率感興趣。
任何想要傳送數據到如Facebook 或Twitter 這樣的外部Web 服務的開發者都能受益於本書的處理XML 和Web 服務的章節。許多應用程式都需要使用表顯示數據,對此我也會詳細介紹。最後,所有iOS 應用程式都有一個用戶界面,我將介紹如何使用故事板構建用戶界面。儘管我的最初想法是為企業開發者編寫一本書,但我相信我寫的書幾乎對開發任何類型的應用程式都有用。
此版本的新內容
自本書的第1 版發行以來,iOS 開發社區已發生了很大變化。蘋果公司持續發布具有新特性的iOS 新版本來幫助開發者為蘋果設備構建更好的應用程式。
通過引入Automatic Reference Counting(ARC),蘋果公司已極大簡化了iOS 應用程式中的記憶體管理工作。開發者不再需要手工保留或釋放記憶體,而是由ARC 處理這些。因此,我更新了本書的示例來實施ARC 和與ARC 兼容。
蘋果公司還通過提供故事板來精簡iOS 用戶界面的開發。故事板替代了Interface Builder 原來提供的功能。現在你可以在Xcode 的故事板中處理所有用戶界面工作,我已經修改了上一版的代碼和示例以在合適的地方使用故事板。
最後,所有螢幕截圖和許多其他圖表都已被重畫以反映這些或其他一些自第1 版以來在iOS 生態系統中進行開發的變化。
本書讀者對象
如前所述,我最初是為企業開發者編寫此書的,他們主要負責移動化企業數據和編寫在移動設備上呈現和操作這些數據的應用程式。在寫作這本書期間,我開始確信我正在介紹的工具、API 和開發技術對於商業領域之外的許多種類的應用程式開發都是有價值的。
任何編寫應用程式以任何方式處理數據的人都應該會發現本書很有用。
本書應該不是你的第一本iOS 應用程式開發書籍。在本書中你找不到“Hello World”iOS 應用程式。有很多好書可用來學習如何構建基本iOS 應用程式。本書主要針對已經理解如何構建iOS 應用程式的開發者,他們知道如何使用Interface Builder 設計和構建用戶界面,並且熟練掌握了Objective-C。這並不是說初學者無法在這裡找到有用的知識,只是我在編寫這本書時認為讀者已經理解了iOS 應用程式的基本架構並能夠熟練地使用Xcode工具。
本書內容
本書講述了用於理解如何構建以數據為中心的iOS 應用程式的技術。你將會發現和SQLite 有關的章節,SQLite 是作為iOS 的一部分而被包含在其中的資料庫引擎。此處你將學習如何從各種格式的檔案中導入數據到資料庫中和如何在設備上查詢數據。我將廣泛地介紹UITableView 控制項,包括自定義數據顯示的不同策略。另外我將介紹如何使用故事板構建應用程式用戶界面。你還將看到Core Data API 的廣泛使用。當你需要在設備上構建和存儲數據時,你將發現你會經常使用這個極好的數據持久存儲框架。最後將介紹如何在iOS上構建XML 和如何將你的應用程式與Web 服務集成。
本書結構
我將本書分為三個部分,它們寬鬆地對應企業應用程式中的數據流。本書的第Ⅰ部分介紹了如何從如Oracle、MySQL 或SQL Server 這樣的大型資料庫獲取數據,以及如何將這些數據存儲到設備中並顯示。本書的第Ⅱ部分介紹了如何在設備上構建數據和Core DataAPI。本書的最後一部分介紹了如何從設備獲取數據和與Web 服務通信。儘管我嘗試以一種邏輯順序逐章呈現這些材料,但讀者不需要按順序閱讀本書。如果你正在構建基於表視圖的應用程式並需要知道如何定製表的外觀,則你只需跳轉到第3 章。如果你正在構建針對iPad 的應用程式,則只需要閱讀第4 章。如果你需要實現Core Data,可跳轉到第Ⅱ部分。如果你需要集成Web 服務,可參考第10 章和第11 章。
閱讀本書需要做的準備
因為這本書適合中到高級iOS 開發者,所以你應該已經具有了閱讀本書所需的所有工具。你需要一台安裝有Mac OS X 的蘋果計算機來構建iOS 應用程式。另外你需要安裝Xcode 開發環境,它由蘋果公司在Mac 套用商店免費提供。
最後一個需求是如果你想要在物理設備上安裝你的應用程式,而不是僅在iOS 模擬器上運行你的代碼,還需要加入iOS 開發者計畫。在編寫這本書時,加入該計畫每年需花費99 美元,從而允許你在你的設備上構建和運行應用程式,並可將最終完成的應用程式提交給蘋果iOS 套用商店用於銷售。如果你當前不是開發者計畫成員,不要擔心。本書中只有很少一部分代碼需要在真實設備上運行,而本書中幾乎所有代碼都可在模擬器中正確運行。
對於需要在設備上運行的代碼,我會在文本中做出標註。
原始碼
當你閱讀本書的原始碼時,你可以選擇手工輸入所有代碼,或者使用本書附帶的源代
碼檔案。本書使用的所有原始碼都可下載,具體對於本書來說,其原始碼可Download Code 選項卡處下載。
你還可以通過EISBN(本書的EISBN 為978-1-1183-9184-6)搜尋
本書來找到其原始碼。提供了當前所有Wrox 書籍的完整代碼下載列表。
在每一章中,你可在清單標題和文本中根據需要查找代碼檔案名稱稱的引用。
大多數中的代碼都以.ZIP、.RAR 或類似的適合特定平台的文檔格式
壓縮。下載這些代碼後,你只需要使用合適的壓縮工具解壓縮。
勘誤表
儘管我們已經盡了最大的努力來保證文章或代碼中不出現錯誤,但是錯誤總是難免的,如果你在本書中找到了錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免走入誤區,當然,這還有助於提供更高質量的信息。
要在網站上找到本書英文版的勘誤表,可以登錄,或者訪問,通過Search 工具或書名列表查找本書,然後在本書的細目頁面上,單擊Errata 連結。在這個頁面上可以查看到Wrox 編輯已提交和貼上的所有勘誤項。完整的圖書列表還包括每本書的勘誤表。
如果你在勘誤表上沒有找到錯誤,完成上面的表格,並把找到的錯誤傳送給我們。我們將會核查這些信息,如果無誤的話,會把它放置到本書的勘誤表中,並在本書的後續版本中更正這些問題。

要與作者和同行討論,請加入P2P 論壇。這個論壇是一個基於Web的系統,便於你張貼與Wrox 圖書相關的訊息和相關技術,與其他讀者和技術用戶交流心得。
該論壇提供了訂閱功能,當論壇上有新的訊息時,它可以給你傳送感興趣的論題。Wrox作者、編輯和其他業界專家和讀者都會到這個論壇上來探討問題。
有許多不同的論壇,它們不僅有助於閱讀本書,還有助於開發自己的應用程式。要加入論壇,可以遵循下面的步驟:
(1) 進入,單擊Register 連結。
(2) 閱讀使用協定,並單擊Agree 按鈕。
(3) 填寫加入該論壇所需要的信息和自己希望提供的其他信息,並單擊Submit 按鈕。
(4) 你會收到一封電子郵件,其中的信息描述了如何驗證賬戶和完成加入過程。
不加入P2P 也可以閱讀論壇上的訊息,但要張貼自己的訊息,就必須加入該論壇。
加入論壇後,就可以張貼新訊息,回復其他用戶張貼的訊息。可以隨時在Web 上閱讀訊息。如果要讓該網站給自己傳送特定論壇中的訊息,可以單擊論壇列表中該論壇名旁邊的Subscribe to this Forum 圖示。
關於使用Wrox P2P 的更多信息,可閱讀P2P FAQ,了解論壇軟體的工作情況以及P2P和Wrox 圖書的許多常見問題的解答。要閱讀FAQ,可以在任意P2P 頁面上單擊FAQ 連結。

相關詞條

熱門詞條

聯絡我們