這個核心服務層包含應用的基本系統服務。關鍵這些服務是在核心功能和核心功能庫之間,所有的應用都必須使用這些基礎類型。這個層同時包含個別的技術,例如本地,iCloud,公共媒體和網絡。
接下來的部分描述的是一些在核心服務層下高級別的特性
點對點服務(Peer-to-Peer Services)iCloud 存儲(iCloud Design Guide)
iCloud存儲讓應用寫用戶文檔和數據到本地中心。用戶可以從他們的電腦或者IOS設備訪問這些。使得用戶的文檔存儲在ICloud下,用戶就可以不需要在同步的情況下,使用其他設備來修改或者查看他們的文檔,明確的轉移文件。安全的存儲文檔到用戶的iCloud賬號下。即使用戶丟失了設備,文檔也還在iCloud存儲裡。
應用可以使用這兩個iCloud存儲特性方法。
許多應用使用iCloud文檔通過iCloud賬號來分享文檔。用戶關心文檔什麼時候通過設備分享,或者他們可以看見和管理這些來自共享的文檔。與之相反,iCloud key-value的數據用戶是看不見的,但是,這是一個方式通過應用接口分享這個小數據(10k)。應用應該使用這個特性來存儲非臨界應用數據,例如,preferences配置,而不是重要的應用數據。
對象Block (Blocks Programming Topics) (Guide)
Block Objects是基於C語言結構,可以使用在C語言代碼下和OBJ-c語言代碼下。一個Block對象是本質上是一個沒有名稱的功能和數據通過這方法獲得,一些在其它應用裡面是通過呼叫closure或者lambda。Blocks有使用獨特,如callbacks或者在一個地方你需要一個方法簡單的結合運行的代碼和相關的數據。
在IOS,blocks通常使用在
數據保護(App Programming Guide for iOS)
數據保護允許應用在一些設備中使用更有優勢的經過內置加密的用戶數據。當你的應用指定一個需要保護的特殊文件,系統會使用加密來存儲這個文件到硬盤上。當設備上鎖,你的應用甚至黑客入侵,都不能訪問到這個文件。但是,當用戶解鎖設備,應用就可以使創建的解密文件來訪問文件。你可以使用不同級別的數據保護。
實現數據保護你需要考慮你要怎麼創建和管理你想保護的文件。應用必須設計成保護創建時的數據,和當用戶鎖與解鎖設備下,訪問文件情況。
支持文件分享
分享文件支持讓應用在iTunes9.1或更高的版本上可以獲得用戶數據。一個應用需要聲明支持文件分享,在/Documents 的字典下分享內容。用戶可以把分享到iTunes的文件移進或移出這個字典。這個特性不允許應用在同一個設備上從其他應用分享文件到應用裡。這個特性需要pasteboard和一個文檔管理對象。
允許分享文件到你的應用裡
應用支持文件分享,應該具有管理他們的能力。當文件被增加到Documents下,和作出相應的響應。例如,你的應用吧一些顯得內容通過接口添加到這裡,你不應該吧這個目錄的文件列表呈現給用戶,而是告訴他們決定怎麼使用這些文件。
GCD (Guide)
GCD是一個BSD級別的技術,可以在應用中管理執行中的任務。GCD結合異步編譯模式,是一種很方便和高效,不同線程的高級語言的模式。GCD同時為低級別任務提供許多便捷的方法,如,閱讀和編寫文件描述,實現定時器,監視信號和處理事件。
In-app Purchanse
In-App Purchase提供出售應用中指定的內容,服務,和iTunes內容到你的應用裡。使用StoreKit庫可以實現這些特性,庫提供了使用iTunes賬號來處理交易事項。應用控制了整個用戶體驗和可視化支付展現的內容或者服務。對於可以下載的內容,你可以承載自己的內容或者讓蘋果服務幫你承載。
SQLite
SQLite庫提供了一個高效內嵌式數據庫在應用中,你可以不需要使用一個外置的數據庫服務。對於應用,你可以創建本地的數據庫和管理或者記錄文件。這個庫為一般使用者設計,具有高效的訪問和處理能力。
訪問SQLite庫的頭文件在/usr/include/sqlite3.h,在Xcode的安裝路徑下。
支持XML documentation for libxml2
這個功能庫提供了NSXMLParser類處理來自XML文檔的內容。另外,還支持操作在libxml2庫下XML數據。這個是開源的庫,讓你快熟的解析或者編寫XML數據或者轉化XML內容為HTML。
libxml2庫的頭文件在/usr/include/libxml2/ 下,在Xcode的安裝路徑下。
接下來要介紹的是這個庫和庫下的功能
5.0 系統用戶 Accounts.framework
提供了一種單一的登錄模式。這個模式避免了多賬號登錄,並且優化的登錄體驗,可以通過這個庫登錄和修改用戶數據。同時,為你的應用簡化了管理時的授權問題。使用這個庫是可以聯合Social framework一起使用。(AC)
2.0 通訊錄 AddressBook.framework
直接進入用戶的通訊錄。如果你的應用需要使用通訊錄信息,你可以使用這個庫來進入和修改通訊錄信息。如,需找最近加入通訊錄的信息並且顯示信息。(AB)
6.0廣告 AdSupport.framework
提供用於廣告目的的標識符的訪問,這個框架還提供了一個標志,判斷用戶是否選擇了廣告跟蹤。在使用標識符訪問前,應用需要可讀,並且忠誠於廣告追蹤。(AS)
2.0 網絡處理 _CFNetwork.framework
_ (Guide)
一個以C語言為基礎,面向對象,高效的處理網絡庫。這庫提供許多處理網絡組件堆的細節和更加容易使用底層的模塊,如BSD socket。並且簡化了FTP,HTTP服務,或者解決DNS host.(CF)
8.0 雲處理 _CloudKit.framework
_
提供了一個通道從你的應用到ICloud來傳輸數據。不同於其他iCloud技術,這種傳輸更加直接。這個庫給予了當數據產生變化時,你可以控制他的能力。同時可以使用它管理所有的類型數據。
應用可以通過他把商店數據直接的分享給所有使用者,這個公共庫是設應用綁定的,即使你沒有注冊iCloud賬號。應用開發者,可以直接在這裡管理數據,並且可以了解到用戶的任何修改數據的行為。 (CK)
3.0 核心數據 _CoreData.framework
_
是一項管理數據模型技術,Model-View-Controller應用。這個庫有意使得應用使用的數據模型都是最高標准的。而不是定義數據結構,在xcode裡面使用圖形工具來構建一個模式表示數據模式。在應用運行的時候,實例中的數據模式的創建,管理和可視化都是通過這個庫完成的。(NS)
2.0 核心功能 _CoreFoundation.framework
_
一些列基於C語言的接口,提供最基礎的數據處理,和IOS服務特點。(CF)
2.0 核心位置 _CoreLocation.framework
_ (Guide)
這個庫為應用提供位置和標題信息。對於位置信息,這個庫使用了GPS,cell,或者wifi遙控,來尋找用戶的實際維度和精度。你可以在應用裡使用這個技術為用戶提供坐標信息。例如,你可能有一個業務是想要獲得用戶附近的餐廳,商店或者工廠等,或者是他當前的正確的位置。(CL)
4.0 核心媒體 _CoreMedia.framework
_
為AVFoundation庫提供了底層的圖像類型。許多應用需要使用到這個庫,但是他也只是為很少一部分開發者使用,用於精確地創建或者展現音頻和視頻內容。(CM)
4.2 核心手勢 _CoreMotion.framework
_
為設備提供一組基於手勢數據的接口。庫支持訪問原始和處理過的加速器數據使用一套新的基於塊的接口。自帶陀螺儀的設備,你可以檢測原始的陀螺儀數據和,基於陀螺儀數據的游戲,或者其他使用到手勢的應用,或者像一個方法來提高用戶體驗。自帶運動統計的硬件設備,你可以訪問這些數據,並且把數據用在保健的活動上。(CM)
4.2 核心電話 _CoreTelephony.framework
_
為擁有打電話功能的設備提供了一個基於手機信息接口。應用使用這個庫可以獲取關於用戶的電話服務。適合一些打電話的應用,如,VoIP(網絡電話)應用,並且可以接受電話的所有通知。(CT)
4.0 日歷事件 _EventKit.framework
_
包含最常規的可以操作的音頻和視頻。不要直接使用這個框架。提供一個接口來訪問用戶設備上的日歷。(EK)
2.0 功能 _Foundation.framework
_
在Core Foundation庫中的,這個庫提供了許多基於OBJ-c基礎類的特性。可以在Core Foundation庫中找到描述。(NS)
8.0 保健 HealthKit.framework
一個全新的庫,管理用戶和健康相關的信息。在擴散型應用,可以追蹤健康的設備,和保健信息下,用戶很難清楚他們是如何做的。但是,這個庫使得應用梗榮的分享保健的相關信息,信息來源於IOS設備,或者用戶手動錄入。用戶保健信息保存在安全而又集中的位置。用戶可以在保健應用上,查看到自己的所有保健信息。
當你的應用支持這個庫,你就可以訪問用戶相關的保健信息,獲得一些用戶信息,並且不需要追蹤保健的設備。信息的分享都是由用戶來決定的。當你的應用可以獲得這些數據的時候,你就可以注冊一個通知來獲得信息變化,並且獲得信息時間,可以微細的調控他。例如,你可以在應用中請求用戶的血壓,並且設置一個通知,關於血壓高低的警告通知。(HK)
7.0 JaveScript JavaScriptCore.framework
提供了基於OBJ-c包裝的許多JaveScript標准類。使用這個庫可以測試JaveScript代碼和解析Json數據。(JS)
3.0 手機核心服務 MobileCoreServices.framework
定義底層的類型,適用於UTIs標准定義(UT)
7.0 多點連接 MultipeerConnectivity.framework
提供搜索附件的設備和直接交互那些不是通過網絡連接的設備。這個庫可以簡單的創建多點會話,支持傳輸可靠的有序數據和實時傳輸。在這個庫下,你可以和附近的設備交互和無縫交換數據。
這個庫提供界面為掃描和管理網絡的服務。應用可以整合 MCBrowserViewController到界面中來顯示一個列表下的設備讓用戶選擇。或者,你也可以使用MCNearbyServiceBrowser類來查看和管理設備等。(MC)
5.0 新聞 NewsstandKit.framework(Guide)
提供一個閱讀雜志和新聞的中心。發布者可以通過這個庫創建應用開發布雜志,新聞到Newsstand上。Newsstand支持後台下載,在你開始下載後,系統會控制下載操作和完成後通知用戶。(NK)
6.0 Passes PassKit.framework (Guide)
Passbook應用提供給用戶一個可以購買優惠劵,飛機票,其他票和商業打折卡的地方。替換以往的線下購買方式。用戶現在可以在IOS設備下購買他們和與以前一樣的使用他們。這個庫提供了OBJ-c接口把items整合到你的應用裡面。你可以使用這個應用組合網絡接口和文件格式來創建和管理你的公司Offers。
通過你的公司的服務器來創建Passes,和通過用戶的設備(via email,safairi,和應用)來交費用。這個Pass自身是個很特殊的文件格式,在支付前就已經加密了。這個文件格的ID相關信息關於關於服務以至於用戶可以知道這些服務是做什麼。它同時可以擁有一個bar代碼,或者其他信息以至於你可以使用他來驗證或者退貨和使用。(PK)
4.0 快速預覽 QuickLook.framework
、在應用裡,提供直接的接口預覽文件內容。這個庫是為從網絡下載文件和位置源頭的工作文件准備的。在獲得文件之後,你使用庫提供的viewcontroller來直接的顯示這些文件內容。(QL)
7.0 Safari服務 SafariServices.framework
為程序提供添加URLs到用戶的Safari的閱讀列表裡面。(SS)
6.0 社會 Social.framework
提供一個簡單接口來訪問用戶的社交媒體賬號。這個庫取代Twitter庫,和增加支持其他的社交賬號,包括facebook,新浪微博,和其他。應用使用這個庫來修改狀態,和賬號頭像。這個庫和Account庫一起工作,為用戶提供一個簡單的登錄模式,和確定通過用戶賬號認證。(SL)
3.0 支付 StoreKit.framework (Guide)
支持支付內容和服務於IOS應用,如In-app Purchase。例如,你可以使用這個特性來允許用戶在應用裡解鎖額外的內容。或者如果你是個游戲開發者,你可以使用它來提供額外的游戲關卡。同樣的。這個庫管理著交易事物,通過用戶而itunes商店的賬號來處理支付請求和獲得購買內容的信息。(SK)
2.0 系統配置 SystemConfiguration.framework
提供可達性接口,你可以使用它來決定設備的網絡設置。你可以使用這個庫來決定Wifi設置或者蜂窩網絡下,是否可以訪問特定的服務器。(SC)
8.0 網絡 WebKit.framework
([Core Services Layer][2])
讓應用顯示HTML內容。除了顯示HTML以外,你可以提供基本的修改,用可以替換文字,修改文檔內容和屬性,包括CSS。WebKit同時也支持在DOM級別的HTML文檔下創建和修改內容。例如你可以使用一頁的摘要鏈接列表,修改他們和替換他們顯示的優先級,在一個網絡的界面內。(WK)