轉自 http://blog.csdn.net/iukey/article/details/7666460
Core Services層為所有的應用程式提供基礎系統服務。可能應用程式並不直接使用這些服務,但它們是系統很多部分賴以建構的基礎。
高階特性
下面的部分描述一些比較常見特性,也許您正打算讓您的應用程式支援這些特性。
塊對象
iOS 4.0引入了塊對象。塊對象是C層級的構造,您可以在C或Objective-C代碼中使用快對象。從本質上說,塊對象本質上是一個匿名函數加上該函數的伴隨資料。有些時候,其他語言也稱塊對象為 closure或者lambda。塊對象非常適用於回呼函數。如果您需要有很便捷的方法將執行代碼和相關資料群組合在一起,塊對象也是很好的選擇。
在 iOS系統中,塊對象通常用於下述場合:
作為委託或委託方法的替代品。
作為回呼函數的替代品。
用於實現一次性操作的完成處理器。
簡化在群體所有子項上迭代執行某種任務的操作。
配合分發隊列。可用於執行非同步任務。
如需瞭解塊對象及其使用方式,請查看塊對象簡短實踐指南 。如需進一步瞭解塊對象, 請查看塊對象編程論述 。
Grand Central Dispatch
iOS 4.0引入了 Grand Central Dispatch (GCD),它是BSD層級的技術,可用於在應用程式內管理多個任務的執行。GCD技術將非同步編程模型和高度最佳化核心結合在一起,可作為多線程的便捷(且更高效)替代。同時,它也為許多種底層任務( 例如讀寫檔案描述符、實現定時器、監視訊號和處理事件等)提供替代方案。
如需進一步瞭解在應用程式內使用GCD的方式,請查看並發編程指南 。如果需要瞭解特定GCD函數的資訊,請查看Grand Central Dispatch (GCD)參考 。
應用程式內購買(In App Purchase)
iOS 3.0引入了應用程式內購買功能。通過該功能,您可以在應用程式內出售內容或服務。該功能使用Store Kit架構來實現,它可以為使用iTunes賬戶進行的財務交易的處理提供基礎支援,應用程式只需處理使用者體驗及待售內容或服務的展現。
如果需要進一步瞭解iOS如何支援應用程式內購買功能,請參考應用程式內購買編程指南 。如需進一步瞭解 Store Kit架構,請參考“Store Kit架構” 。
定位服務
應用程式可使用Core Location架構提供的介面追蹤使用者位置。此架構利用當前可用的硬體無線電波(包括Wi-Fi、蜂窩無線或者GPS)定位使用者的當前位置。應用程式可以對架構提供的資訊進行裁剪,然後再將其發送給客戶, 或是用於實現某些特定功能。舉個例子,社交應用程式允許您找到附近其他應用程式使用者,然後再與之進行通訊。
如需進一步瞭解如何使用定位服務,請閱讀方位感知編程指南 。如需進一步瞭解Core Locatio架構,請閱讀“Core Location架構 ”。
SQLite
SQLite庫允許開發人員將一個輕量級SQL資料庫嵌入到應用程式,而且開發人員不需要運行獨立的遠端資料庫伺服器處理序。在此之後,開發人員可以在應用程式中建立本機資料庫檔案,管理檔案中的表和記錄。雖然SQLite資料庫出於通用目的而設計,但它還是針對資料庫記錄的快速存取做過最佳化。
用於訪問SQLite庫的標頭檔位於 <iOS_SDK>/usr/include/sqlite3.h
。 在該路徑中, <iOS_SDK>是Xcode安裝目錄中目標SDK的路徑。如果需要更多如何使用SQLite的資訊, 請訪問http://www.sqlite.org網站。
XML 支援
Foundation架構支援使用NSXMLParser
類從XML文檔中解析元素,而libXML2
庫則為操作XML內容提供支援。 libXML2
庫是開源的,它可以讓您快速地解析或寫入任意的XML資料,也可將XML內容轉化為HTML檔案。
用於訪問libXML2
庫的標頭檔位於 <iOS_SDK>/usr/include/libxml2/
。 在該路徑中, <iOS_SDK>是Xcode安裝目錄中目標SDK的路徑。如要更多libXML2
的使用資訊, 請訪問 http://xmlsoft.org/index.htm 網站。
Core Services 架構
下述部分描述Core Services層的架構以及這些架構提供的服務。
Address Book 架構
Address Book架構 (AddressBook.framework
)支援編程訪問儲存於使用者裝置中的連絡人資訊。如果應用程式使用到連絡人資訊,則可通過該架構訪問並修改使用者連絡人資料庫的記錄。舉個例子,通過使用該架構,聊天程式可以擷取一個連絡人清單,利用此列表初始化聊天會話,並在連絡人視圖顯示列表的連絡人。
如果需要進一步瞭解 Address Book架構的功能,請訪問Address Book 架構參考 。
CFNetwork 架構
CFNetwork架構 (CFNetwork.framework
)提供一組高效能基於C語言的介面,它們為使用網路通訊協定提供物件導向抽象。通過這些抽象,您可以對協議棧進行更精細的控制,而且可以使用諸如 BSD socket這類底層結構。您也可以通過該架構簡化諸如與FTP或HTTP伺服器通訊以及DNS主機解析這類任務。下面列舉一些可以使用 CFNetwork架構執行的任務:
使用BSD sockets
使用SSL或TLS建立加密串連
解析DNS主機
使用HTTP,校正HTTP以及HTTPS伺服器。
使用FTP伺服器
發布、解析並瀏覽 Bonjour服務。
CFNetwork理論及實現都以 BSD socket為基礎。如需更多如何使用CFNetwork架構的資訊, 請訪問CFNetwork編程指南以及CFNetwork架構參考。
Core Data 架構
iOS 3.0引入Core Data架構(CoreData.framework
)。Core Data架構是一種管理模型-視圖-控制器應用程式資料模型的技術,它適用於資料模型已經高度結構化的應用程式。通過此架構,您再也不需要通過編程定義資料結構,而是通過Xcode提供的圖形工具構造一份代表資料模型的圖表。在程式啟動並執行時候,Core Data架構就會建立並管理資料模型的執行個體,同時還對外提供資料模型提供者。
通過Core Data管理應用程式的資料模型,可以極大程度減少需編寫的代碼數量。除此之外,Core Data還具有下述特徵:
將對象資料存放區在SQLite資料庫以獲得效能最佳化。
提供NSFetchedResultsController
類用於管理表視圖的資料。
管理undo/redo操作。
屬性值校正支援。
支援對資料變化進行傳播,並且不會改變對象間的關聯。
支援對資料進行歸類,過濾,並支援對記憶體資料進行管理。
如果您正在開發新應用程式或打算對某個現有的程式進行大幅度更新,請考慮使用Core Data。如果需要瞭解如何在iOS應用程式中使用Core Data,請參考iOS Core Data 教程 。如果需要進一步瞭解Core Data架構中的類,請參考Core Data架構參考 。
Core Foundation 架構
Core Foundation架構 (CoreFoundation.framework
) 是一組C語言介面,它們為iOS應用程式提供基本資料管理和服務功能。下面列舉該架構支援進行管理的資料以及可提供的服務:
群體資料類型 (數組、集合等)
程式包
字串管理
日期和時間管理
未經處理資料塊管理
偏好管理
URL及資料流操作
線程和RunLoop
連接埠和soket通訊
Core Foundation架構和Foundation架構緊密相關,它們為相同功能提供介面,但Foundation架構提供Objective-C介面。如果您將Foundation對象和Core Foundation類型摻雜使用,則可利用兩個架構之間的 “toll-free bridging”。所謂的Toll-free bridging是說您可以在某個架構的方法或函數同時使用Core Foundatio和Foundation 架構中的某些類型。很多資料類型支援這一特性,其中包括群體和字串資料型別。每個架構的類和類型描述都會對某個對象是否為 toll-free bridged,應和什麼對象橋接進行說明。
如需進一步資訊,請閱讀Core Foundation 架構參考。
Core Location 架構
Core Location架構 (CoreLocation.framework
)可用於定位某個裝置當前經緯度。它可以利用裝置具備的硬體,通過附近的GPS、蜂窩基站或者WiFi訊號等資訊計算使用者方位。Maps應用程式就是利用此功能在地圖上顯示使用者當前位置。您可以將此技術結合到應用程式,以此向使用者提供方位資訊。例如,應用程式可根據使用者當前位置搜尋附近飯店、商店或其他設施 。
在iOS 3.0系統中,該架構開始支援訪問iOS裝置(具有相應硬體的裝置)的方向資訊。
在iOS 4.0系統中,該架構開始支援低能耗的方位監視服務,該服務利用蜂窩基站跟蹤使用者方位。
如需瞭解Core Location架構中的類,請參考Core Location 架構參考 。
Core Media 架構
iOS 4.0引入了Core Media架構 (CoreMedia.framework
)。此架構提供AV Foundation架構使用的底層媒體類型。只有少數需要對音頻或視頻建立及展示進行精確控制的應用程式才會涉及該架構,其他大部分應用程式應該都用不上。
如需進一步瞭解此架構的函數和資料類型,請閱讀Core Media 架構參考。
Core Telephony 架構
iOS 4.0引入了Core Telephony架構(CoreTelephony.framework
)。此架構為訪問具有蜂窩無線裝置上的電話資訊提供介面,應用程式可通過它擷取使用者蜂窩無線服務的供應商資訊。如果應用程式對於撥打電話感興趣,也可以在相應事件發生時得到通知。
如需進一步瞭解如何使用該架構的類和方法,請閱讀Core Telephony架構參考。
Event Kit 架構
iOS 4.0引入了 Event Kit架構 (EventKit.framework
)。此架構為訪問使用者裝置的日曆事件提供介面。您可以通過該架構訪問使用者日曆中現有事件,可以增加新事件。日曆事件可包含鬧鈴,而且可以配置鬧鈴啟用規則。
如需進一步瞭解如何使用該架構的類和方法,請閱讀Event Kit 架構參考 ,也可參考Event Kit 使用者介面架構。
Foundation 架構
Foundation架構 (Foundation.framework
)為 Core Foundation架構的許多功能提供Objective-C封裝。您可以參考Core Foundation架構瞭解前面對Core Foundation架構的描述。 Foundation架構為下述功能提供支援:
群體資料類型 (數組、集合等)
程式包
字串管理
日期和時間管理
未經處理資料塊管理
偏好管理
URL及資料流操作
線程和RunLoop
Bonjour
通訊連接埠管理
國際化
Regex匹配
緩衝支援
如需進一步瞭解如何使用該架構的類和方法,請閱讀Foundation架構參考 。
Mobile Core Services 架構
iOS 3.0引入了Mobile Core Services架構 (MobileCoreServices.framework
)。此架構定義統一類型標識符 (UTIs)使用的底層類型。
如需進一步瞭解此架構定義的類型,請查看統一類型標識符參考 。
Quick Look 架構
iOS 4.0引入Quick Look架構(QuickLook.framework
),應用程式可以用過該架構預覽無法直接支援查看的檔案內容。如果應用程式從網路下載檔案或者需處理來源未知的檔案,則非常適合使用此架構。因為應用程式只要在獲得檔案後,調用架構提供的視圖控制器就可以直接在介面中顯示檔案的內容。
如需進一步瞭解該架構的類和方法,請參考Quick Look架構參考。
Store Kit 架構
iOS 3.0引入Store Kit 架構(StoreKit.framework
),此架構為iOS應用程式內購買內容或服務提供支援。例如,開發人員可以利用此架構允許使用者解鎖應用程式的額外功能。或者假設您是一名遊戲開發人員,則可使用此特性向玩家出售附加遊戲層級。在上述的兩種情況中,Store Kit 架構會處於交易過程中和財務相關的事件,包括處理使用者通過 iTunes Store帳號發出的支付請求並且嚮應用程式提供交易相關資訊。
Store Kit架構主要關注交易過程中和財務相關的事務,目的是為了確保交易安全準確。應用程式需要處理交易事物的其他因素,包括購買介面和下載(或者解鎖)恰當的內容。通過這種任務劃分方式,您就擁有購買內容的控制權,可以決定希望展示給使用者的購買介面以及何時向使用者展示這些介面,同時也可以決定和應用程式最匹配的交付機制。
如需進一步瞭解Store Kit架構的使用方式,請查看應用程式內購買編程指南以及Store Kit 架構參考 。
System Configuration 架構
System Configuration架構(SystemConfiguration.framework) 可用於確定裝置的網路設定。您可以使用該架構判斷Wi-Fi或者蜂窩串連是否正在使用中,也可以用於判斷某個主機服務是否可以使用。
如需進一步瞭解此架構提供的介面,請查看System Configuration架構參考。如需通過此架構擷取網路資訊的樣本,請訪問 Reachability範例工程。