[IOS/翻譯]Core Services Layer
這個核心服務層包含應用的基本系統服務。關鍵這些服務是在核心功能和核心功能庫之間,所有的應用都必須使用這些基礎類型。這個層同時包含個別的技術,例如本地,iCloud,公用媒體和網路。
進階別的特性
接下來的部分描述的是一些在核心服務層下進階別的特性
點對點服務(Peer-to-Peer Services)
多點串連庫提供了點對點的串連超過藍芽。你可以初始化點對點連接和附近的裝置進行互動會話。雖然點對點連接主要用在遊戲上,但是你可以使用這個特性在其他類型的應用上。
iCloud 儲存(iCloud Design Guide)
iCloud儲存讓應用寫使用者文檔和資料到本地中心。使用者可以從他們的電腦或者IOS裝置訪問這些。使得使用者的文檔儲存在ICloud下,使用者就可以不需要在同步的情況下,使用其他裝置來修改或者查看他們的文檔,明確的轉移檔案。安全的儲存文檔到使用者的iCloud帳號下。即使使用者丟失了裝置,文檔也還在iCloud儲存裡。
應用可以使用這兩個iCloud儲存特性方法。
iCloud document storage 文檔儲存
可以把文檔和資料存放區在使用者的iCloud帳號下 iCloud key-value data storage 鑰匙資料存放區
可以通過應用間的介面分享小資料 CloudKit storage
當你想建立公用分享內容,或者管理自己傳輸資料
許多應用使用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通常使用在
類似替代Delegate和Delegate方法 類似替代callback功能 執行一次性操作的完成處理常式 便於在和集中的所有item執行任務 和dispatch queues一起使用,執行非同步任務
資料保護(App Programming Guide for iOS)
資料保護允許應用在一些裝置中使用更有優勢的經過內建加密的使用者資料。當你的應用指定一個需要保護的特殊檔案,系統會使用加密來儲存這個檔案到硬碟上。當裝置上鎖,你的應用甚至駭客入侵,都不能訪問到這個檔案。但是,當使用者解鎖裝置,應用就可以使建立的解密檔案來訪問檔案。你可以使用不同層級的資料保護。
實現資料保護你需要考慮你要怎麼建立和管理你想保護的檔案。應用必須設計成保護建立時的資料,和當使用者鎖與解鎖裝置下,訪問檔案情況。
支援檔案分享
分享檔案支援讓應用在iTunes9.1或更高的版本上可以獲得使用者資料。一個應用需要聲明支援檔案分享,在/Documents 的字典下分享內容。使用者可以把分享到iTunes的檔案移進或移出這個字典。這個特性不允許應用在同一個裝置上從其他應用分享檔案到應用裡。這個特性需要pasteboard和一個文件管理對象。
允許分享檔案到你的應用裡
添加UIFileSharingEnabled Key到你的應用Info.plist裡面,設定這個值為YES 把你想分享的檔案放在應用的Documents下 當裝置和電腦相串連時,iTunes就會顯示這個檔案分享到顯示在選擇裝置的表現上。 使用者可以添加檔案到字典下,或者吧檔案移到案頭。
應用支援檔案分享,應該具有管理他們的能力。當檔案被增加到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的安裝路徑下。
核心服務庫 Core Services Framework
接下來要介紹的是這個庫和庫下的功能
列表
5.0 系統使用者
Accounts.framework (AC)
2.0 通訊錄
AddressBook.framework(AB)
6.0 廣告
AdSupport.framework (AS)
2.0 網路處理 _CFNetwork.framework
_ (
Guide) (CF)
8.0 雲處理 _CloudKit.framework
_ (CK)
3.0 核心資料 _CoreData.framework
_ (NS)
2.0 核心功能 _CoreFoundation.framework
_ (NS)
2.0 核心位置 _CoreLocation.framework
_ (
Guide) (CL)
4.0 核心媒體 _CoreMedia.framework
_ (CM)
4.2 核心手勢 _CoreMotion.framework
_ (CM)
4.2 核心電話 _CoreTelephony.framework
_(CT)
4.0 日曆事件 _EventKit.framework
_(EK)
2.0 功能 _Foundation.framework
_(NS)
8.0 保健
HealthKit.framework (HK)
7.0 JaveScript
JavaScriptCore.framework(JS)
3.0 手機核心服務
MobileCoreServices.framework(UT)
7.0 多點串連
Multipeer Connectivity Framework(MC)
5.0 新聞
NewsstandKit.framework(
Guide)(NK)
6.0 Passes
PassKit.framework (
Guide)(PK)
4.0 快速預覽
QuickLook.framework(QL)
7.0 Safari服務
SafariServices.framework(SS)
6.0 社會
Social.framework(SL)
3.0 支付
StoreKit.framework (
Guide)(SK)
2.0 系統配置
SystemConfiguration.framework(SC)
8.0 網路
WebKit.framework (WK)
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)
使用BSD sockets 使用SLL或者TLS時候,建立加密連結 解決DNS hosts 為HTTP服務,驗證HTTP服務,HTTPS服務等工作 為FTP服務工作 發布,處理和瀏覽 Bonjour服務等(
Guide)
8.0 雲處理 _CloudKit.framework
_
提供了一個通道從你的應用到ICloud來傳輸資料。不同於其他iCloud技術,這種傳輸更加直接。這個庫給予了當資料產生變化時,你可以控制他的能力。同時可以使用它管理所有的類型資料。
應用可以通過他把商店資料直接的分享給所有使用者,這個公用庫是設應用綁定的,即使你沒有註冊iCloud帳號。應用開發人員,可以直接在這裡管理資料,並且可以瞭解到使用者的任何修改資料的行為。 (CK)
3.0 核心資料 _CoreData.framework
_
是一項管理資料模型技術,Model-View-Controller應用。這個庫有意使得應用使用的資料模型都是最高標準的。而不是定義資料結構,在xcode裡面使用圖形工具來構建一個模式表示資料模式。在應用啟動並執行時候,執行個體中的資料模式的建立,管理和可視化都是通過這個庫完成的。(NS)
對象資料存放區在高效能的SQLite資料庫 一個NSFetchedResultsController類管理tableView的結果 管理重做/恢複的能力在基礎文本修改能力之上 支援屬性值的驗證 支援繼承和確保類之間的關係持續一致 支援在記憶體裡形成組,篩選資料和組織資料能力
如果你將要準備開發一個新的應用或者計劃升級已經存在的應用。你應該要考慮使用這個庫。舉一個例子在IOS應用裡使用這個庫,請查看
Core Data Tutorial for iOS
2.0 核心功能 _CoreFoundation.framework
_
一些列基於C語言的介面,提供最基礎的資料處理,和IOS服務特點。(CF)
集合資料類型(數組,組,和其他) Bundles 字串String管理 時間Date和Time管理 未經處理資料快管理 網路連接,網路流管理 多線程,迴圈運算 連接埠Port和socket串連
這個庫和Foundation庫有很大的關係,提供基於OBJ-c的介面一樣的基礎特性。當你需要混合類功能或者類型時,你可以利用兩個不同類件存在的“toll-free bridging”,這個“toll-free bridging”指的是在一些方法裡使用這個庫和庫類型交換和任意一個庫。這個是的許多資料類型可以使用,包括集合和字串資料型別。The class and type descriptions for each framework state whether an object is toll-free bridged and, if so, what object it is connected to。
2.0 核心位置 _CoreLocation.framework
_ (Guide)
這個庫為應用提供位置和標題資訊。對於位置資訊,這個庫使用了GPS,cell,或者wifi遙控,來尋找使用者的實際維度和精度。你可以在應用裡使用這個技術為使用者提供座標資訊。例如,你可能有一個業務是想要獲得使用者附近的餐廳,商店或者工廠等,或者是他當前的正確的位置。(CL)
在有陀螺儀的IOS裝置中訪問指南針資訊 在地圖上或者藍芽資訊內擷取監測地區資訊 使用低能量的本地搜尋 和Mapkit一同使用,在某種特定的情況下可以提高座標品質,例如,導航。
4.0 核心媒體 _CoreMedia.framework
_
為AVFoundation庫提供了底層的映像類型。許多應用需要使用到這個庫,但是他也只是為很少一部分開發人員使用,用於精確地建立或者展現音頻和視頻內容。(CM)
4.2 核心手勢 _CoreMotion.framework
_
為裝置提供一組基於手勢資料的介面。庫支援訪問原始和處理過的加速器資料使用一套新的基於塊的介面。內建陀螺儀的裝置,你可以檢測原始的陀螺儀資料和,基於陀螺儀資料的遊戲,或者其他使用到手勢的應用,或者像一個方法來提高使用者體驗。內建運動統計的硬體裝置,你可以訪問這些資料,並且把資料用在保健的活動上。(CM)
4.2 核心電話 _CoreTelephony.framework
_
為擁有打電話功能的裝置提供了一個基於手機資訊介面。應用使用這個庫可以擷取關於使用者的電話語音。適合一些打電話的應用,如,VoIP(網路電話)應用,並且可以接受電話的所有通知。(CT)
4.0 日曆事件 _EventKit.framework
_
包含最常規的可以操作的音頻和視頻。不要直接使用這個架構。提供一個介面來訪問使用者裝置上的日曆。(EK)
擷取已經存在的事件,和從使用者的日曆上獲得事件提醒 添加事件到使用者日曆上 使用者可以建立提醒事件,並且顯示在提醒事件的應用上 + 配置日曆事件的鬧鐘,包括這是鬧鐘的內容
Important:反問使用者的日曆,並且提示資料需要得到使用者的同意才能使用。應用必須處理使用者的禁止訪問。應用也是鼓勵提供Info.plist上Keys描述,訪問請求的需求。
2.0 功能 _Foundation.framework
_
在Core Foundation庫中的,這個庫提供了許多基於OBJ-c基礎類的特性。可以在Core Foundation庫中找到描述。(NS)
集合資料類型(數組,組,和其他) Bundles 字串String管理 時間Date和Time管理 未經處理資料快管理 網路連接,網路流管理 多線程,迴圈運算 連接埠Port和socket串連 網路 正則匹配運算式 緩衝機制
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)