iOS框架介紹(五)---Core Services 層


轉自 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 UI 框架

Foundation 框架

Foundation框架 (Foundation.framework)為 Core Foundation框架的許多功能提供Objective-C封裝。您可以參考Core Foundation框架了解前面對Core Foundation框架的描述。 Foundation框架為下述功能提供支持:

  • 群體數據類型 (數組、集合等)

  • 程序包

  • 字符串管理

  • 日期和時間管理

  • 原始數據塊管理

  • 偏好管理

  • URL及數據流操作

  • 線程和RunLoop

  • Bonjour

  • 通訊端口管理

  • 國際化

  • 正則表達式匹配

  • 緩存支持

如需進一步了解如何使用該框架的類和方法,請閱讀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樣例工程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM