在iOS中框架是一個目錄溅呢,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件猿挚,以及圖像咐旧、聲音文件等其他資源。共享資源庫定義應(yīng)用程序可以調(diào)用的函數(shù)和方法绩蜻。
????iOS為應(yīng)用程序開發(fā)提供了許多可使用的框架铣墨,并構(gòu)成IOS操作系統(tǒng)的層次架構(gòu),分為四層办绝,從上到下依次為:Cocoa Touch Layer(觸摸UI層)伊约、MediaLayer(媒體層)、Core Services Layer(核心服務(wù)層)孕蝉、Core OS Layer(核心OS層)屡律。
?低層次框架提供IOS的基本服務(wù)和技術(shù),高層次框架建立在低層次框架之上用來提供更加復(fù)雜的服務(wù)和技術(shù)降淮,較高級的框架向較低級的結(jié)構(gòu)提供面向?qū)ο蟮某橄蟆?/p>
?在開發(fā)應(yīng)用時應(yīng)盡可能使用較高級的框架超埋。如果要開發(fā)的國內(nèi)在高層框架中沒有提供,你也可以使用較低層框架和技術(shù)佳鳖。
?Foundation和?UIKit框架是應(yīng)用編程用到的兩個主要的框架霍殴,能夠滿足大多數(shù)應(yīng)用程序的開發(fā)需求。
?UIKit框架提供的類系吩,用于創(chuàng)建基于觸摸的用戶界面来庭。所有?iOS?應(yīng)用程序都是基于?UIKit,?沒有這個框架淑玫,就無法交付應(yīng)用程序巾腕。UIKit提供應(yīng)用程序的基礎(chǔ)架構(gòu)面睛,用于在屏幕上繪圖、處理事件尊搬,以及創(chuàng)建通用用戶界面及其中元素叁鉴。UIKit還通過管理屏幕上顯示的內(nèi)容,來組織應(yīng)用程序佛寿。
Foundation框架為所有應(yīng)用程序提供基本的系統(tǒng)服務(wù)幌墓。應(yīng)用程序以及?UIKit和其他框架,都是建立在?Foundation?框架的基礎(chǔ)結(jié)構(gòu)之上冀泻。???? Foundation框架提供許多基本的對象類和數(shù)據(jù)類型常侣,使其成為應(yīng)用程序開發(fā)的基礎(chǔ)。它還制定了一些約定(如用于取消分配等任務(wù))弹渔,使代碼更加一致胳施,可復(fù)用性更好。
整個框架架構(gòu)圖如下:
一Cocoa Touch Layer(觸摸UI層)
CocoaTouch Layer包含創(chuàng)建ios應(yīng)用關(guān)鍵的框架肢专。該層包含的框架定義應(yīng)用的外觀舞肆,也提供基本的應(yīng)用基礎(chǔ)和關(guān)鍵的技術(shù)支持,例如多任務(wù)博杖、觸摸輸入椿胯、推送通知和許多其它的高級系統(tǒng)服務(wù)。在開發(fā)應(yīng)用時剃根,應(yīng)當(dāng)首先研究該層的技術(shù)和技術(shù)看是否能夠滿足需要哩盲。
1.1 Cocoa Touch Layer包含如下關(guān)鍵技術(shù)
1).AirDrop
??AirDrop允許用戶與附近設(shè)備共享圖片、文檔狈醉、urls鏈接以及其它種類的數(shù)據(jù)廉油。
2)、Text Kit
TextKit是處理文本和排版的一個全功能舔糖、高級別的類集合娱两。使用Text Kit你能在段落、列或者頁上對帶有風(fēng)格的文本進行布局金吗;也能在任意區(qū)域(如圖形)周圍布局流動的文本;還能用它來管理多種字體趣竣。
開發(fā)應(yīng)用時應(yīng)該首先考慮使用Text Kit來進行文本呈現(xiàn)摇庙,而不是Core Text。Text Kit與所有UIKit中的基于文本的控制集成允許應(yīng)用更容易地創(chuàng)建遥缕、編輯卫袒、顯示和存儲文本。
3)单匣、UIKit Dynamics
UIKit dynamics用來為符合UIDynamicItem協(xié)議的UIView對象或其它對象規(guī)定動畫行為夕凝。通過在應(yīng)用的UI中集成真實世界行為和特性進宝穗,動畫行為為應(yīng)用提供了一種增強用戶體驗的方式。
4)码秉、Multitasking
在ios中多任務(wù)用來設(shè)計來使電池使用時間最大化逮矛。
5)、Auto Layout
?自動布局幫助你使用非常少的代碼來建立動態(tài)接口转砖。
使用AutoLayout定義如何在用戶接口上布局元素的規(guī)則须鼎,這些規(guī)則表達了視圖類之間的關(guān)系,如規(guī)定一個按鈕總是處于它的父窗口的左邊緣20個點府蔗。
在Auto Layout中使用的實體是被稱為constraints的Objective-C對象晋控。
6)、Storyboards
串聯(lián)圖 是設(shè)計應(yīng)用用戶接口的推薦方式姓赤。串聯(lián)圖讓你在一個地方就能夠設(shè)計全部的用戶接口赡译,方便在一個位置看到所有的視圖和視圖控制器以及理解它們是如何一起工作的。串聯(lián)圖的一個重要的部分是定義segues(segues是從一個視圖控制器到另一個的轉(zhuǎn)換)不铆。這些轉(zhuǎn)換代表用戶接口之間的交互蝌焚。你可以使用XCOE來可視的定義這些轉(zhuǎn)換或者通過編程啟動它們。
?你能使用一個單串聯(lián)圖文件來存儲所有的應(yīng)用視圖控制器和視圖狂男,或者使用多個視圖串聯(lián)圖文件來組織用戶接口综看。
在應(yīng)用建立時間,Xcode讀取串聯(lián)圖文件的內(nèi)容并把它分成多個能獨立加載的離散的片斷岖食,以便獲得更好的性能红碑。UIKit框架提供了相應(yīng)的類來從程序中存取一個串聯(lián)圖的內(nèi)容。
7)泡垃、UI State Preservation
UI狀態(tài)保存能夠使應(yīng)用表現(xiàn)的一直運行析珊,從而為用戶提供無縫的體驗。如果系統(tǒng)遇到內(nèi)存壓力蔑穴,系統(tǒng)可能安靜地強制停止一個或多個后臺應(yīng)用忠寻。
當(dāng)應(yīng)用從前臺移到后臺時,該服務(wù)能保存應(yīng)用的視圖和視圖控制器的狀態(tài)存和。在下次應(yīng)用重新啟動時奕剃,能夠使用先前保存的狀態(tài)信息來恢復(fù)視圖和視圖控制器到它們先前的配置,使應(yīng)用表現(xiàn)得好像一直在運行捐腿。
8)纵朋、Apple Push Notification Service
蘋果的推送通知服務(wù)提供了一種提示用戶關(guān)于新信息的方式,即使應(yīng)用當(dāng)前不在激活運行狀態(tài)茄袖。
使用該服務(wù)操软,你能推送文本通知,在應(yīng)用圖標(biāo)上增加一個標(biāo)記或者在任意時間觸發(fā)聲音提示宪祥。
這些消息讓用戶知道他們應(yīng)該打開應(yīng)用來接收相關(guān)信息聂薪。自Ios7開始,你甚至能推送無聲的通知來讓應(yīng)用知道有了新的內(nèi)容可以下載家乘。
為了使用IOS應(yīng)用的推送通知,用戶需要做兩部分的工作藏澳。首先應(yīng)用必須登記該通知服務(wù)以及在通知被提交時處理相關(guān)的通知數(shù)據(jù)仁锯。第二,你必須提供一個服務(wù)端的進程來產(chǎn)生通知笆载。
服務(wù)端的進程可以使用你自己的本地服務(wù)器或者使用蘋果的推送通知服務(wù)扑馁。
9)、Local Notifications
本地通知作為推送通知機制的補充凉驻,可以給應(yīng)用提供一種不依賴外部服務(wù)器產(chǎn)生本地通知的方式腻要。
?運行在后頭的應(yīng)用能使用本地通知作為當(dāng)重要的事件發(fā)生時引起用戶注意的一種方式。例如涝登,運行在后臺的導(dǎo)航應(yīng)用能使用本地通知來提示用戶什么時間該轉(zhuǎn)彎了雄家。
應(yīng)用也能調(diào)度本地通知在將來的時間提交以及使那些通知在應(yīng)用不運行也能被提交。
本地通知的一個優(yōu)點是它們與你的應(yīng)用是獨立的胀滚。在一個通知已被調(diào)度趟济,系統(tǒng)管理它的提交。另外當(dāng)通知被提交時你的應(yīng)用甚至不必運行咽笼。
10)顷编、Gesture Recognizers
手勢識別用來檢測通常類型的手勢。由于手勢識別使用與系統(tǒng)檢測手勢相同的試探方法剑刑,因此手勢識別為應(yīng)用提供了一個一致的行為媳纬。為了使用它,你能在你的視圖上附加手勢識別功能和并給它提供一個在手勢出現(xiàn)時要執(zhí)行的方法施掏。
手勢識別跟蹤原始的觸摸事件和確定它們什么時候與想要的手勢匹配钮惠。
11)、System View Controllers
許多系統(tǒng)框架為標(biāo)準(zhǔn)的系統(tǒng)接口定義了視圖控制器七芭。只要有可能素挽,為了呈現(xiàn)一致的用戶體驗,就應(yīng)該使用系統(tǒng)提供的視圖控制器而不是創(chuàng)建一個新的狸驳。
2.2 Cocoa Touch層框架
CoCoa Touch層包含如下框架:
1预明、Address Book UI Framework(地址本UI框架)
該框架提供一個面向?qū)ο蟮木幊探涌凇S脕盹@示標(biāo)準(zhǔn)的系統(tǒng)接口耙箍,來創(chuàng)建新的聯(lián)系人和編輯和選擇已存在的聯(lián)系人贮庞。
2、Event Kit UI Framework(月歷事件UI框架)
?該框架提供一個視圖控制器來呈現(xiàn)標(biāo)準(zhǔn)的系統(tǒng)接口究西,來觀察和編輯月歷相關(guān)的事件。EventKit UI Framework基于Event Kit framework框架物喷。
3卤材、Game Kit Framework(游戲工具框架)
?該框架實現(xiàn)對游戲中心的支持遮斥,讓用戶能夠在線共享他們的游戲相關(guān)的信息如迟。
4占键、iAd Framework(iAD框架)
?該框架用來在應(yīng)用中提供廣告條。
?當(dāng)你想要顯示廣告時情萤,廣告條與用戶UI上的標(biāo)準(zhǔn)的視圖進行合并帆精。
這些視圖與蘋果的iAd服務(wù)一起工作较屿,自動處理、加載和呈現(xiàn)富媒體廣告以及應(yīng)答在那些廣告條上的點擊等所有相關(guān)的工作卓练。
5隘蝎、Map Kit Framework(地圖工具框架)
MapKit提供與應(yīng)用的UI組合的一個可滾動的地圖。
除了顯示一個地圖襟企,你能使用該框架接口來定制地圖的內(nèi)容和外觀嘱么,也能使用注解來標(biāo)記感興趣的點,也能使用定制的內(nèi)容來與地圖內(nèi)容疊置顽悼。例如曼振,你可以在地圖上來畫一條公交路線,或者使用注解來高亮顯示附近的商店和餐館蔚龙。
除了顯示地圖冰评,MapKit框架還能與地圖應(yīng)用以及蘋果的地圖服務(wù)器集成來為用戶指引方向。
地圖應(yīng)用能夠給任意支持方向的應(yīng)用提供方向的代理木羹。如提供特定類型方向的應(yīng)用甲雅,例如一個顯示地鐵路線的應(yīng)用,能登記請求接收地圖應(yīng)用提供的方向汇跨。
應(yīng)用也能向蘋果的服務(wù)器請求步行或駕駛方向务荆,并與他們定制的方向的路徑信息混合來為用戶提供完整的點到點體驗。
6穷遂、Message UI Framework( 消息UI框架)
該框架用來在應(yīng)用中提供編輯郵件和sms消息的支持函匕。
編輯支持包括一個呈現(xiàn)到你的應(yīng)用的視圖控制器接口,并能設(shè)置這個視圖控制器的一些區(qū)域蚪黑,如接收人盅惜、主題、郵件主體和郵件想包括的任意附件忌穿。
在呈現(xiàn)視圖控制器后抒寂,也能為用戶提供一個在發(fā)送郵件之前可以編輯郵件的選項。
7掠剑、UIKit Framework
該框架提供實現(xiàn)圖形和事件驅(qū)動的應(yīng)用的至關(guān)重要的基礎(chǔ)屈芜。包括:???
????? 1、基本的應(yīng)用管理和基礎(chǔ)設(shè)施,包括應(yīng)用的主循環(huán)井佑;
?2属铁、用戶接口管理,包括對storyboards和nib文件的支持躬翁;
????? 3焦蘑、一個用來封裝用戶UI內(nèi)容的視圖控制器模式;
????? 4盒发、?標(biāo)準(zhǔn)系統(tǒng)視圖和控制對象例嘱;
????? 5、提供處理觸摸和運動事件的支持宁舰;
????? 6拼卵、支持包括與iCloud集成功能的文檔模式;
???? ?7明吩、?圖形和窗口支持间学,包括支持外部顯示器;
????? 8印荔、多任務(wù)支持低葫;
????? 9、打印支持仍律;
???? 10嘿悬、?定制標(biāo)準(zhǔn)UIKit控制的外觀;
?????11水泉、支持文本和web內(nèi)容善涨;
?????12、剪切草则、復(fù)制钢拧、粘貼的支持;
???? 13炕横、支持動畫UI源内;
?????14、通過url語義和框架接口與系統(tǒng)提供的其它應(yīng)用集成的能力份殿;
?????15膜钓、對有障礙用戶的可存取性的支持;
?????16卿嘲、支持ApplePush Notification服務(wù)颂斜;
?????17、本地通知調(diào)度和提交拾枣;
?????18沃疮、pdf 創(chuàng)建;
?????19、支持定制像系統(tǒng)鍵盤行為一樣的用戶輸入視圖忿磅;
?????20糯彬、支持創(chuàng)建與系統(tǒng)鍵盤交互的定制的文本視圖;
?????21葱她、支持通過email,Twitter, Facebook和其它服務(wù)共享內(nèi)容。
也支持一些設(shè)備特定功能的集成似扔,例如
1吨些、內(nèi)建的攝像機;
2炒辉、用戶的圖片庫豪墅;
3、設(shè)備名和模式信息黔寇;
4偶器、電池狀態(tài)信息;
5缝裤、接近傳感器信息屏轰;
6、來自附件耳機的遠程控制信息
二憋飞、MediaLayer(媒體層)
媒體層包含在應(yīng)用中實現(xiàn)多媒體體驗的圖形霎苗、聲音、視頻技術(shù)和框架榛做。使用這層的技術(shù)可以使你容易的建立更加好看和好聽的應(yīng)用唁盏。
2.1 包含的關(guān)鍵技術(shù)
?2.1.1 圖形技術(shù)
?高質(zhì)量的圖形是所有應(yīng)用的重要的組成部分。IOS提供了許多幫助你定制藝術(shù)和圖形屏幕的技術(shù)检眯。IOS圖形技術(shù)為其提供了廣泛的支持厘擂,并可以與UIKit視圖架構(gòu)無縫工作。
你能使用標(biāo)準(zhǔn)的視圖來快速提交高質(zhì)量的接口锰瘸,或者使用本層的圖形技術(shù)創(chuàng)建你自己的定制視圖來提交一個更加豐富的圖形體驗刽严。
1)、UIKit graphics
UIKit定義的繪制圖像和Bézier路徑获茬,以及動畫視圖內(nèi)容的高級別技術(shù)港庄。
UIKit視圖提供快速和有效的方式來呈現(xiàn)圖像和文本內(nèi)容。
UIKIT視圖也能通過顯示和使用UIKitdynamics技術(shù)進行動畫恕曲,并為用戶提供反饋鹏氧,促進用戶交互。
2)佩谣、CoreGraphics 框架
CoreGraphics也稱作Quartz把还,是對定制的2D向量和圖像呈現(xiàn)提供支持的本地繪制引擎。
該框架提供的引擎雖然沒有OpenGLES引擎速度快,但該框架能夠很好地適合于呈現(xiàn)定制的2d圖形和動態(tài)圖像吊履。
3)安皱、CoreAnimation框架
CoreAnimation也是Quartz核心框架的一部分,是優(yōu)化應(yīng)用動畫體驗的基礎(chǔ)技術(shù)艇炎。
UIKit視圖基于?Core Animation提供視圖級別的動畫支持酌伊。
當(dāng)你想對動畫行為有更多控制時也能直接使用CoreAnimation。
4)缀踪、Core Image
CoreImage提供非破壞的方式操作視頻和靜態(tài)圖像居砖。
5)、OpenGL ES及GLKit
OpenGLES使用硬件加速接口來處理先進的2d 和3d 呈現(xiàn)驴娃。OpenGLES通常由游戲開發(fā)者或想實現(xiàn)沉浸式圖像體驗的開發(fā)者使用奏候。
OpenGLES框架提供對呈現(xiàn)過程的全部控制,以及提供創(chuàng)建平滑動畫所需要的幀速唇敞。
GLKit是一組Objective-C類蔗草,以便能夠使用面向?qū)ο蠼涌趤硖峁㎡penGL ES的強大能力。
6)疆柔、Text Kit和CoreText
Text Kit是UIKit框架的家族咒精,用來來執(zhí)行最好的排面和文本管理。如果你的應(yīng)用實現(xiàn)先進的文本操作婆硬,Text Kit提供與應(yīng)用視圖的無縫集成狠轻。
CoreText是處理先進排面和布局的低級別的c語言框架。
7)彬犯、Image I/O
ImageI/O提供讀寫大多數(shù)圖像格式的接口向楼。
8)、Assets Library
AssetsLibrary框架讓你存取用戶的圖片谐区、視頻和媒體湖蜕。
你想在應(yīng)用中集成用戶自己的內(nèi)容時可以使用該框架。
? 2.1.2 聲音技術(shù)
聲音技術(shù)工作于底層硬件之上宋列,為用戶提供更加豐富的聲音體驗昭抒。這些體驗包括播放和記錄高質(zhì)量的聲音、處理MIDI內(nèi)容以及使用設(shè)備內(nèi)建的聲音 等能力炼杖,
??? ?1). Media Player framework
??? ?? 該框架是一個高級別的框架灭返, 用來為用戶提供對iTunes庫存取的容易方式,也提供對播放軌跡和播放列表的支持坤邪。
?????? 當(dāng)你想快速在應(yīng)用中集成聲音以及不需要控制播放行為時可以使用該框架熙含。
???? 2)、AV Foundation
?????? AVFoundation是管理聲音以及視頻播放和記錄的面向?qū)ο蠼涌凇?/p>
?????? 在記錄聲音和想對聲音播放過程有更好的控制時可以使用該框架艇纺。
???? 3)怎静、OpenAL
?????? OpenAL是一個提供位置音效的跨平臺的工業(yè)標(biāo)準(zhǔn)技術(shù)和接口邮弹。
?????? 游戲開發(fā)者經(jīng)常使用該技術(shù)來提供高質(zhì)量的聲音。
??? 4)蚓聘、Core Audio
????? Core Audio是一組簡單和智能的接口來記錄和播放聲音以及MIDI內(nèi)容腌乡。
??????在需要對聲音有更好控制時使用該框架。
? 2.1.3??視頻技術(shù)
視頻技術(shù)提供管理應(yīng)用中的靜態(tài)視頻內(nèi)容或者播放來自Internet的視頻流的支持夜牡。
????? 對于帶有適當(dāng)?shù)挠涗浻布脑O(shè)備与纽,該框架還能夠記錄視頻以及與應(yīng)用進行集成。
1).UIImagePickerController
?????? ?? UIImagePickerController是一個選擇用戶媒體文件的UIKit視圖控制器氯材。
2)渣锦、Media Player
???????? MediaPlayer框架提供一組呈現(xiàn)視頻內(nèi)容的簡單易用的接口,該框架支持全屏和小窗口視頻播放氢哮,也為用戶提供可選的播放控制。
???? ?3)型檀、AVFoundation
??????? AVFoundation提供先進的視頻播放和記錄能力冗尤。
??????? 在需要對視頻呈現(xiàn)和記錄有更多的控制時使用該框架,例如在實時應(yīng)用中分層顯示實時視頻和應(yīng)用提供的其它內(nèi)容胀溺。
???? ?4)裂七、CoreMedia
??????? CoreMedia框架為操作媒體定義低級別的數(shù)據(jù)類型和接口。
????????當(dāng)你需要對視頻內(nèi)容有無比的控制時可以使用該框架仓坞。
? 2.1.4??AirPlay技術(shù)
?????? AirPlay讓應(yīng)用串流聲音和視頻內(nèi)容到Apple TV或者串流聲音內(nèi)容到第三方揚聲器和接收器背零。
?????? AirPlay內(nèi)建于許多框架,包括UIKit无埃、Media Player徙瓶、AVFoundation、Core Audio嫉称。因此在大多數(shù)情況你不需要為了支持它做任何事侦镇。在使用那些框架時,當(dāng)播放內(nèi)容時自動獲得AirPlay支持织阅。當(dāng)用戶選擇使用AirPlay播放內(nèi)容時系統(tǒng)自動進行路由壳繁。
2.2包含的框架
?????? MediaLayer提供如下框架和服務(wù)。
?????? 2.2.1荔棉、Assets Library 框架
??????????? AssetsLibrary 框架(AssetsLibrary.framework)提供對用戶設(shè)備上圖片應(yīng)用管理的圖片和視頻的存取闹炉。
???????????使用該框架來存取用戶保存的圖片相冊或?qū)氲皆O(shè)備的任意相冊中的圖片,你也能保存新的圖片和視頻到用戶的圖片相冊润樱。
??????2.2.2渣触、AV Foundation 框架
??????????? AVFoundation?框架 (AVFoundation.framework)提供一組播放、記錄和管理聲音和視頻內(nèi)容的Objective-C類祥国。
??????????? 當(dāng)你想在應(yīng)用的ui接口無縫集成媒體能力時使用該框架昵观。
????????? ? 你也能使用它來進行更先進的媒體處理晾腔,例如同時播放多個聲音或者控制播放和記錄過程的多個方面。
????????????該框架提供的服務(wù)包括:????
1)聲音會話管理啊犬,包括對系統(tǒng)聲明你的應(yīng)用聲音能力灼擂;?????????? ???2)對應(yīng)用媒體資源的管理;?????????? ? 3)對編輯媒體內(nèi)容的支持觉至;???????????? 4)捕捉聲音和視頻的能力剔应;?????????? ??5)播放聲音和視頻的能力;????????? ?? 6)軌跡管理语御;??????????? ?7)媒體元數(shù)據(jù)的管理峻贮;??????????? ?8)立體拍攝;?????????? ? 9)聲音之間的精確同步应闯;???????? ? 10)提供一個確定聲音文件細節(jié)內(nèi)容的Objective-C接口纤控,例如數(shù)據(jù)格式,采樣率碉纺,通道數(shù)船万;????????? ?11)?通過AirPlay串流內(nèi)容。???
?? ??2.2.3骨田、Core Audio 框架
??????? Core Audio是一個對聲音處理提供本地支持的框架家族耿导。這些框架支持聲音的產(chǎn)生、記錄态贤、混合和回放舱呻。你也能使用這些接口處理MIDI內(nèi)容以及串流聲音和MIDI內(nèi)容到其它應(yīng)用。
??????? Core Audio框架包括如下框架:
??????? CoreAudio.framework
????????定義Core Audio框架使用的所有數(shù)據(jù)類型悠汽。
AudioToolbox.framework
提供聲音文件和聲音流的播放和記錄服務(wù)箱吕。也提供管理聲音文件,播放系統(tǒng)警告聲音介粘,在某些設(shè)備上觸發(fā)震動的支持殖氏。
AudioUnit.framework
提供使用內(nèi)建聲音單元。也提供使你的應(yīng)用的聲音內(nèi)容作為對其它應(yīng)用可視的聲音組件的支持姻采。
CoreMIDI.framework
提供與MIDI設(shè)備通訊的標(biāo)準(zhǔn)方式雅采,包括硬件鍵盤和合成器。你使用這個框架來發(fā)送和接收MIDI消息以及與通過dock連接器或網(wǎng)絡(luò)連接到IOS設(shè)備的MIDI外設(shè)交互慨亲。
MediaToolbox.framework
提供對聲音tap接口的存取婚瓜。
?2.2.4、Core Graphics 框架
????? CoreGraphics.framework包含Quartz 2D繪制api刑棵。
????? Quartz是一個原先用在OS X的先進的巴刻、向量繪制引擎。Quartz支持路徑繪制蛉签,抗鋸齒呈現(xiàn)胡陪,剃度沥寥,圖像,顏色柠座,坐標(biāo)空間轉(zhuǎn)換以及pdf 內(nèi)容創(chuàng)建邑雅、顯示和分析等功能。
????? 雖然這個api是C-based接口妈经,但它使用了面向?qū)ο蟪橄髞肀憩F(xiàn)基本的繪制對象淮野,因此使它容易存儲和重用圖形內(nèi)容。
2.2.5吹泡、Core Image 框架
??? ? CoreImage 框架(CoreImage.framework)提供一組強大的內(nèi)建過濾器來操作視頻和靜態(tài)圖像骤星。
??? ? 你能在觸摸彈起、糾正圖片以及面部和特征檢測等許多方面使用這些內(nèi)建的過濾器爆哑。這些過濾器的先進特點是它們操作在非破壞方式洞难,即原先的圖像不被改變。
???????這些過濾器針對底層硬件進行了優(yōu)化揭朝,因此它們是快速和有效的廊营。
2.2.6、Core Text 框架
??? ? CoreText?框架 (CoreText.framework)提供一個對文本進行布局和字體處理的簡單的萝勤、高性能的C-based接口。
????? 該框架用在不使用TextKit但仍想獲得在字處理應(yīng)用中發(fā)現(xiàn)的先進文本處理能力呐伞。
????? 該框架提供了一個智能的文本布局引擎敌卓,包括在其它內(nèi)容周圍環(huán)繞文本的能力,它也支持使用多種字體和呈現(xiàn)屬性的先進的文本風(fēng)格伶氢。
2.2.7趟径、Core Video 框架
????? CoreVideo 框架 (CoreVideo.framework)為Core Media框架提供緩沖和緩沖池支持。多數(shù)應(yīng)用從不直接使用該框架癣防。
2.2.8蜗巧、Game Controller 框架
????? GameController?框架 (GameController.framework)讓你在應(yīng)用中發(fā)現(xiàn)和配置針對iPhone/iPod/iPad設(shè)備的游戲控制器。
?????? 游戲控制器可以是物理連接到iOS設(shè)備或者是通過藍牙無線連接蕾盯。GameController框架當(dāng)控制器可獲得時通知你的應(yīng)用讓應(yīng)用可以規(guī)定哪個控制器輸入與你的應(yīng)用相關(guān)幕屹。
2.2.9、GLKit 框架
????? GLKit框架 (GLKit.framework)包含一組簡化創(chuàng)建OpenGLES應(yīng)用的Objective-C based 單元類级遭。
????? GLKit支持應(yīng)用開發(fā)的四個關(guān)鍵領(lǐng)域
1)GLKView和GLKViewController類提供一個OpenGLES視圖和其呈現(xiàn)循環(huán)的標(biāo)準(zhǔn)實現(xiàn)望拖。
OpenGLES視圖代表應(yīng)用管理底層的framebuffer對象。應(yīng)用只需在視圖上繪制挫鸽。
?????? 2) GLKTextureLoader類提供在你的應(yīng)用中使用圖像轉(zhuǎn)換和加載線程说敏,允許應(yīng)用自動加載紋理圖像到應(yīng)用的上下文。
? 能夠異步或同步加載紋理丢郊。當(dāng)異步加載紋理時盔沫,應(yīng)用應(yīng)提供一個完成處理塊医咨,該處理塊在紋理加載進應(yīng)用上下文時被調(diào)用。?????? 3)GLKit框架提供向量架诞、矩陣和3d 旋轉(zhuǎn)以及提供OpenGLES 1.1上的矩陣拟淮。
?4)GLKBaseEffect,GLKSkyboxEffect,和GLKReflectionMapEffect類實現(xiàn)給通用圖形操作提供可配置的圖形著色。尤其GLKBaseEffect類實現(xiàn)了OpenGL ES 1.1規(guī)范上的光亮和材質(zhì)模式侈贷,簡化了移植一個應(yīng)用從OpenGL ES 1.1到OpenGL ES最后版本的努力惩歉。
2.2.10、Image I/O 框架
?????? ImageI/O 框架(ImageIO.framework)提供輸入和輸出圖像數(shù)據(jù)和圖像元數(shù)據(jù)的接口俏蛮。
??????? 該框架利用CoreGraphics數(shù)據(jù)類型和功能撑蚌,并支持在ios 上所有的可獲得的標(biāo)準(zhǔn)的圖像類型。你能使用這個框架存取Exif和IPTC元數(shù)據(jù)屬性搏屑。
2.2.11争涌、Media Accessibility 框架
????? MediaAccessibility?框架 (MediaAccessibility.framework)管理媒體文件中closed-caption內(nèi)容的呈現(xiàn)。
????? 該框架與新的設(shè)置配合工作可以讓用戶決定是否允許closed-caption顯示辣恋。
2.2.12亮垫、Media Player 框架
????? MediaPlayer 框架(MediaPlayer.framework)提供應(yīng)用中播放聲音和視頻的高級別支持。能夠使用該框架做如下工作:
??????? 1)?播放視頻到用戶屏幕或通過AirPlay到另外的設(shè)備屏幕伟骨。能夠全屏幕播放視頻或以可改變視圖大小的方式播放饮潦。
??????? 2)存取用戶的iTunes音樂庫。能夠播放音樂軌跡和播放列表携狭、搜索音樂继蜡、給用戶提供一個媒體picker呈現(xiàn)接口。
??????? 3)配置和管理電影的回放逛腿。
????????4)?在鎖定屏幕和app 切換窗口上顯示NowPlaying信息稀并。當(dāng)內(nèi)容通過AirPlay提交時還能顯示到AppleTV上。
??????? 5)檢測視頻通過AirPlay被串流的時間单默。
2.2.13碘举、OpenAL 框架
????? OpenAudio Library (OpenAL)接口是用來在應(yīng)用中提供位置音效的跨平臺的標(biāo)準(zhǔn)。
????? 能夠使用該接口在游戲和其它需要位置音效輸出的程序中實現(xiàn)高性能搁廓、高質(zhì)量的聲音引颈。
??????因為OpenAL是跨平臺的標(biāo)準(zhǔn),在iOS使用OpenAL編寫的代碼能夠容易地移植到許多其它平臺枚抵。
2.2.14线欲、OpenGL ES 框架
????? OpenGLES?框架 (OpenGLES.framework)提供繪制2d和3d內(nèi)容的工具, 它是一個C-based的框架汽摹。
????? 該框架以最接近設(shè)備硬件的方式為全屏沉浸式應(yīng)用例如游戲提供細粒度的圖形控制和高的幀率李丰。
??????你能夠與EAGL配合使用這個框架,為OpenGL ES 繪制調(diào)用和UIKit的本地窗口對象之間提供接口逼泣。
????? 該框架支持OpenGLES 1.1, 2.0,?3.0規(guī)范趴泌。2.0規(guī)范增加了片段和頂點著色的支持舟舒,3.0規(guī)范增加了更多的功能,包括多個呈現(xiàn)目標(biāo)和變換反饋嗜憔。
2.2.15秃励、Quartz Core 框架
???? ?? QuartzCore 框架(QuartzCore.framework)包含Core Animation接口。
?????? Core Animation是一個先進的復(fù)合技術(shù)吉捶,使用它能容易創(chuàng)建快和有效的view-based的動畫夺鲜。
????? 復(fù)合引擎利用底層硬件來有效的實時操作視圖內(nèi)容。
????? 只需規(guī)定動畫的起始點呐舔,CoreAnimation做剩下的工作币励。
??????? 因為Core Animation內(nèi)嵌在UIView架構(gòu)的底層,因此它總是可用的珊拼。
2.2.16Sprite Kit 框架
?????? SpriteKit?框架 (SpriteKit.framework)框架為2d和2.5d游戲提供硬件加速的動畫系統(tǒng)食呻。
?????? SpriteKit提供大多數(shù)游戲需要的基礎(chǔ),包括一個圖形引擎和動畫系統(tǒng)澎现,聲音播放支持仅胞,一個物理仿真引擎。??使用SpriteKit不需你自己創(chuàng)建這些事情剑辫,使你聚焦在內(nèi)容設(shè)計和內(nèi)容的高級別的交互上干旧。
?????? 在Sprite Kit應(yīng)用中內(nèi)容組織為場景。一個場景包括紋理對象妹蔽,視頻莱革,路徑圖形,核心圖像過濾器和其它的特效讹开。SpriteKit利用這些對象,確定這些對象到屏幕上的最有效的方式捐名。當(dāng)在場景中到了動畫內(nèi)容的時刻旦万,你能使用SpriteKit來顯式規(guī)定你想執(zhí)行的行動或使用物理仿真引擎來為那些對象定義物理行為(例如重力、引力或排拆力)镶蹋。
????? ? 除了SpriteKit框架成艘,也有其它Xcode工具來創(chuàng)建顆粒發(fā)射效果和紋理圖。你能使用Xcode工具來管理應(yīng)用資源和快速地更新Sprite Kit場景贺归。
三?CoreServices Layer(核心服務(wù)層)
??????? CoreServices Layer包含應(yīng)用需要的基礎(chǔ)的系統(tǒng)服務(wù)淆两。這些服務(wù)中的核心是CoreFoundation和Foundation框架,定義了所有應(yīng)用使用的基本類型拂酣。
????????? 該層也包含獨立的技術(shù)來支持一些其它功能秋冰, 例如位置、iCloud婶熬、社交媒體和網(wǎng)絡(luò)剑勾。
3.1 包含的高級功能:
???? Peer-to-Peer Services(點到點服務(wù))
???????? 這個Multipeer Connectivity框架提供通過藍牙進行p2p連接的能力埃撵。
???????? 你能使用p2p連接來啟動與附近設(shè)備的通訊會話。
?????????雖然p2p連接主要用在游戲中虽另,你也能在其它類型的應(yīng)用中使用這個功能暂刘。
??? iCloud Storage(云存儲)
?????? iCloud存儲讓應(yīng)用把用戶文檔和數(shù)據(jù)寫到一個中心位置,用戶然后能從他們的計算機和ios 設(shè)備存取這些數(shù)據(jù)捂刺。
??????使用iCloud可以使用戶文檔無所不在谣拣,意味著用戶能從任何設(shè)備閱讀或編輯那些文檔,而不需要顯式的同步或文件傳輸族展。存儲文檔到用戶的iCloud賬戶也為用戶提供了一層安全森缠。即使用戶的設(shè)備丟失,那些設(shè)備上的文檔如果已經(jīng)保存到iCloud就不會丟失苛谷。
????? 應(yīng)用能以兩種方式使用 iCloud存儲辅鲸,每一種有不同的使用意圖:
????? 1) iCloud文檔存儲。
?????? 可以使用這個功能在用戶的iCloud賬戶存儲用戶文檔和數(shù)據(jù)腹殿。
???? ?2)iCloud鍵值存儲独悴。
???? ?使用這個功能在應(yīng)用之間共享數(shù)據(jù)。
?????? 大多數(shù)應(yīng)用使用iCloud文檔存儲來共享來自用戶賬戶的文檔。使用iCloud文檔存儲用戶關(guān)心的是文檔能否能夠在設(shè)備之間共享以及他們是否能夠從一個給定設(shè)備查看和管理那些文檔。
????? 相對的髓介,iCloud鍵值存儲是應(yīng)用與應(yīng)用的其它實例共享小量數(shù)據(jù)(幾十k字節(jié))的方式炎滞,應(yīng)用應(yīng)當(dāng)用它存儲非緊急的應(yīng)用數(shù)據(jù),例如設(shè)置免都。
?? Automatic Reference Counting(自動引用計數(shù))
AutomaticReference Counting(ARC)是一個編譯級別的功能,用它來簡化Objective-C對象生命周期過程的管理,以此代替用戶必須記住什么時候應(yīng)該保持和釋放對象爱谁。
??????? ARC評估對象的生命周期需求和自動在編譯時間插入適當(dāng)?shù)姆椒ㄕ{(diào)用。
????? ? ARC用來代替ios 的早期版本中存在的傳統(tǒng)的管理內(nèi)存的編程模式孝偎。
????????新創(chuàng)建的工程自動使用ARC访敌。XCODE也提供了移植工具幫助你轉(zhuǎn)換遺留的工程來使用ARC.
Block Objects(塊對象)
????? BlockObjects是一個能夠與你的C或Objective-C代碼集成的C語言的構(gòu)造塊。一個blockobject本質(zhì)上是一個異步功能和相關(guān)的數(shù)據(jù)衣盾。在其它語言中有時也被稱做closure或lambda寺旺。
???? Blocks尤其用作回調(diào)或放在你需要一種容易的組合執(zhí)行代碼和相關(guān)數(shù)據(jù)方式的地方。
???? 在ios势决,通常在下面的場景使用Blocks:
???? 1)作為代理或代理方法的代替阻塑;
???? 2) 作為回調(diào)功能的代替;
?? ??3)為某個一次性操作實現(xiàn)其完成處理函數(shù)果复;
?? ??4)? 在一個集合中的所有項上執(zhí)行一個任務(wù)陈莽;
?? ? 5)與提交隊列一起執(zhí)行異步任務(wù)。
Data Protection(數(shù)據(jù)保護)
??????? DataProtection允許應(yīng)用利用設(shè)備上已有的內(nèi)建的加密方法來使用用戶的敏感數(shù)據(jù)。
??????? 當(dāng)應(yīng)用指定一個特定的文件被保護時传透,系統(tǒng)在磁盤上以加密格式存儲該文件耘沼。當(dāng)設(shè)備鎖定時,該文件的內(nèi)容不能被應(yīng)用和任何潛在的侵入者存取朱盐∪亨停可是當(dāng)設(shè)備由用戶解鎖時,一個解密key被創(chuàng)建允許你的應(yīng)用存取那個文件兵琳。
???????? 用戶也可以使用其它級別的數(shù)據(jù)保護機制狂秘。
???????? 實現(xiàn)數(shù)據(jù)保護需要你考慮如何創(chuàng)建和管理你想保護的數(shù)據(jù)。應(yīng)用必須設(shè)計在數(shù)據(jù)的創(chuàng)建時間加密數(shù)據(jù)躯肌,以及當(dāng)用戶鎖定或解鎖設(shè)備時為存取條件改變做好準(zhǔn)備者春。
File-Sharing Support(文件共享支持)
????? File-SharingSupport使用戶數(shù)據(jù)文件在iTunes 9.1和以后上可被其它應(yīng)用獲得。一個應(yīng)用聲明支持文件共享使它的/Documents目錄下的內(nèi)容對其它用戶可獲得清女。用戶然后當(dāng)需要時能夠把文件從iTunes移進或移出應(yīng)用的Documents目錄钱烟。
??? ? 這個特征不允許應(yīng)用與相同設(shè)備上的其它應(yīng)用共享應(yīng)用,這需要粘貼板或一個文檔交互控制器對象嫡丙。
??? ?應(yīng)用為了允許文件共享支持拴袭,需要做如下工作:
1、 在應(yīng)用的Info.plist文件中增加UIFileSharingEnabled鍵曙博,并設(shè)置其值為YES拥刻。
2)、在你的應(yīng)用的Documents中放你想共享的文件父泳;
3般哼、當(dāng)設(shè)備插進用戶的計算機時,iTunes在選中設(shè)備的Apps標(biāo)簽下顯式一個文件共享節(jié)惠窄;
4蒸眠、用戶然后能夠增加文件到設(shè)備的文檔目錄或移動文件到桌面。
?????? 支持文件共享的應(yīng)用應(yīng)該能夠識別文件什么時候增加到其Documents目錄和做出適當(dāng)?shù)膽?yīng)答杆融。例如應(yīng)用可以使任意新文件的內(nèi)容可以從它的接口獲得黔宛。也應(yīng)該從不把Documents目錄的文件列表呈現(xiàn)給用戶來請求用戶決定對那些文件做什么。
Grand Central Dispatch
GrandCentral Dispatch(GCD)是一個BSD技術(shù)擒贸,應(yīng)用可以用來管理其任務(wù)的執(zhí)行。
??????GCD與高優(yōu)化的核組合成一個異步編程模式觉渴,來提供方便和更有效的對線程的替代介劫。GCD也為許多低級別的任務(wù)提供一個方便的選擇,例如讀和寫文件描述符案淋,實現(xiàn)定時器和監(jiān)視信號和處理事件座韵。
In-App Purchase(應(yīng)用內(nèi)購買)
????? In-App Purchase 提供在應(yīng)用中銷售應(yīng)用特定的內(nèi)容和服務(wù)以及來自iTunes的內(nèi)容的能力。
?????? 這個功能使用StoreKit框架實現(xiàn),并提供使用用戶的iTunes賬號來處理金融方面的事務(wù)需要的基礎(chǔ)誉碴。
???? 應(yīng)用處理全部用戶體驗和供購買的內(nèi)容及可獲得服務(wù)的呈現(xiàn)宦棺。作為可下載的內(nèi)容,你能把可下載的內(nèi)容放到你自己的服務(wù)器或使用蘋果的服務(wù)器黔帕。
SQLite
?????? SQLite庫讓你在你的應(yīng)用中嵌入一個輕量級的sql數(shù)據(jù)庫代咸,而不需要運行一個分離的遠程數(shù)據(jù)庫服務(wù)進程。從你的應(yīng)用成黄,你能創(chuàng)建本地數(shù)據(jù)庫文件呐芥,管理數(shù)據(jù)庫表和表中的數(shù)據(jù)記錄。
????? SQLite庫為通用功能使用設(shè)計奋岁,但已經(jīng)被優(yōu)化來提供對數(shù)據(jù)記錄更快速的存取思瘟。
XML Support
Foundation框架提供一個NSXMLParser類用來從一個xml文檔中引出元素。
????? 操作xml內(nèi)容的額外的支持由libxml2庫提供支持闻伶。libxml2開源庫讓你快速地分析或?qū)懭我獾膞ml數(shù)據(jù)和轉(zhuǎn)換xml內(nèi)容到html.
3.2 Core Services Frameworks(核心服務(wù)框架)
???? Core Services Frameworks包含下面的一些框架滨攻。
1)、Accounts Framework(帳戶框架)
????? Accounts框架 (Accounts.framework)為確定的用戶賬號提供單點登錄模式蓝翰。
????? 單點登錄通過消除用戶分離的多個賬號需要的多次登錄提示光绕,來增強用戶體驗。它也通過為應(yīng)用管理賬號認證過程來簡化開發(fā)模式霎箍。
???? 該框架需要與Social框架配合使用奇钞。
2)Address Book Framework(地址本框架)
??????? AddressBook 框架(AddressBook.framework)提供可編程存取用戶的聯(lián)系人數(shù)據(jù)庫的方式。
??????? 如果應(yīng)用使用聯(lián)系人信息漂坏,你能使用該框架來存取和修改聯(lián)系人信息景埃。例如一個聊天應(yīng)用可以使用該框架來引出可能的聯(lián)系人列表,通過聯(lián)系人列表來啟動一個會話以及在特定視圖顯示那些聯(lián)系人顶别。
??????? 重要提示:存取用戶的聯(lián)系人數(shù)據(jù)需要用戶的明確的許可谷徙。應(yīng)用因此必須準(zhǔn)備好用戶拒絕存取的情形。應(yīng)用也鼓勵提供Info.plist鍵來描述需要存取的原因驯绎。
3)Ad Support Framework(廣告支持框架)
?????? AdSupport?框架 (AdSupport.framework)提供存取應(yīng)用用于廣告功能的一個標(biāo)識完慧。
?????? 該框架也提供一個指示用戶是否選擇廣告跟蹤的標(biāo)志。應(yīng)用在試圖存取廣告標(biāo)識前需要度和判斷這個標(biāo)志剩失。
4)CFNetwork 框架
?????? CFNetwork框架 (CFNetwork.framework)是高性能的使用面向?qū)ο髮W(wǎng)絡(luò)協(xié)議進行抽象的一組C-based接口屈尼。這些抽象提供對協(xié)議棧細節(jié)的控制,使它容易使用低級別的構(gòu)造例如BSDsockets拴孤。
???????你能使用該框架簡化與ftp或http服務(wù)器通訊或決定dnshosts的任務(wù)脾歧。使用CFNetwork 框架,你能:
1演熟、使用BSD sockets鞭执。
2司顿、使用SSL或TLS創(chuàng)建安全連接。
3兄纺、決定dnshosts大溜。
4、與HTTP服務(wù)器估脆、認證HTTP服務(wù)器钦奋、HTTPS服務(wù)器交互。
5旁蔼、與FTP服務(wù)器交互锨苏。
6、發(fā)布棺聊、解決和瀏覽Bonjour服務(wù)伞租。
?????????????? CFNetwork物理和理論上基于BSD sockets。
5)Core Data 框架
??????????????? CoreData?框架 (CoreData.framework)框架是管理MVC應(yīng)用中的數(shù)據(jù)模式的一種技術(shù)限佩。
????????CoreData框架打算在數(shù)據(jù)模式是高結(jié)構(gòu)化的應(yīng)用中使用葵诈。
????? 代替編程定義數(shù)據(jù)結(jié)構(gòu),在xcode中能夠使用圖形工具來建立一個表現(xiàn)你的數(shù)據(jù)模式的綱要祟同。在運行時作喘,你的數(shù)據(jù)模式實體的實例通過CoreData框架被創(chuàng)建、管理和獲得晕城。
?????????? 通過為你的應(yīng)用管理其數(shù)據(jù)模式泞坦,CoreData大大減少了必須書寫的代碼量。CoreData也提供如下功能:
1砖顷、為優(yōu)化性能在SQLite數(shù)據(jù)庫中存儲對象數(shù)據(jù)贰锁;?
2、一個管理數(shù)據(jù)表視圖結(jié)果的?NSFetchedResultsController類滤蝠;
3豌熄、對基本的文本編輯之外的undo/redo的管理;
4物咳、支持屬性值的校驗锣险;
5、支持傳播改變確保對象之間的關(guān)系保持一致性览闰;
6芯肤、支持分組、過濾和在內(nèi)存中優(yōu)化數(shù)據(jù)压鉴。
如果你開始開發(fā)一個新應(yīng)用或計劃對已有應(yīng)用進行大的更新崖咨,應(yīng)該考慮使用CoreData。
6)Core Foundation 框架
????? CoreFoundation?框架 (CoreFoundation.framework)是一組C-based接口晴弃,為ios應(yīng)用提供基本的數(shù)據(jù)管理和服務(wù)功能。該框架包括如下支持:
??集合數(shù)據(jù)類型(數(shù)組、集合等等)上鞠;
??應(yīng)用打包Bundles际邻;
字符串管理;
日期和時間管理
原始數(shù)據(jù)塊管理
Preferences管理芍阎;
URL和流操作世曾;
線程
?? 9、端口和socket通訊谴咸。
????? CoreFoundation框架與Foundation框架緊密相關(guān)轮听,為相同的基本功能提供Objective-C接口。
??????? 當(dāng)你需要混合使用Foundation對象和Core Foundation類型時岭佳,你能利用兩個框架之間存在的“toll-freebridging”血巍。toll-free bridging”意味著你能可交換地在兩個框架的方法和功能中使用一些CoreFoundation和Foundation類型。這個支持對許多數(shù)據(jù)類型可用珊随,包括集合和字符串?dāng)?shù)據(jù)類型述寡。
??????? 每個框架的類和類型描述聲明一個對象是否是toll-freebridged以及在是的情況下來標(biāo)識它連接到什么對象。
7)Core Location 核心位置框架
??????????? CoreLocation?框架? (CoreLocation.framework)為應(yīng)用提供位置信息叶洞。該框架使用板上的GPS鲫凶、蜂窩、或者Wi-Fi來定位用戶的當(dāng)前經(jīng)度和緯度衩辟。
?????????? 你可在你的應(yīng)用中集成該技術(shù)為用戶提供位置信息螟炫。例如,你可實現(xiàn)一個基于用戶的當(dāng)前位置搜索附近餐館艺晴、商店或者銀行的應(yīng)用昼钻。CoreLocation框架也提供如下能力:
????????? 1) 在包括磁力計的ios設(shè)備上存取羅盤信息;
?????? ?? 2) 基于地理位置或藍牙beacon進行區(qū)域監(jiān)視财饥;
????????? 3)?支持使用蜂窩基站的低耗電的位置監(jiān)視换吧;
????????? 4)與MapKit配合來增強在特定情景下的位置數(shù)據(jù)的質(zhì)量,例如開車時钥星。
8)Core Media Framework(核心媒體框架)
????? CoreMedia 框架(CoreMedia.framework)提供由AV Foundation框架使用的低級別的媒體類型沾瓦。大多數(shù)應(yīng)用從不需要使用該框架,但少數(shù)需要更精確控制音視頻內(nèi)容創(chuàng)建和呈現(xiàn)的開發(fā)者可以使用它谦炒。
9)Core Motion Framework (核心運動框架)
???????? CoreMotion?框架 (CoreMotion.framework)提供一組接口來存取設(shè)備上可獲得的運動數(shù)據(jù)贯莺。
?????? 該框架支持使用一組新的block-based接口來存取原始和加工過的加速度計數(shù)據(jù)。對于帶有陀螺儀的設(shè)備宁改,你也能獲得原始的陀螺儀數(shù)據(jù)和加工過的反應(yīng)設(shè)備方向和旋轉(zhuǎn)速度的數(shù)據(jù)缕探。
???????? 你能在游戲或其它使用運動作為輸入或作為增強用戶體驗的方式的應(yīng)用中使用加速度計和陀螺儀兩種數(shù)據(jù)。對于帶有計步硬件的設(shè)備还蹲,你能存取它的數(shù)據(jù)來跟蹤健康相關(guān)的運動爹耗。
10)Core Telephony Framework(核心電話框架)
??????? CoreTelephony?框架 (CoreTelephony.framework)提供與蜂窩電話的通話相關(guān)的信息交互的接口耙考。
??????? 可以使用該框架來獲得用戶的蜂窩服務(wù)提供者的信息。對于對蜂窩call事件感興趣的應(yīng)用例如VoIP應(yīng)用也能在那些事件出現(xiàn)時被通知潭兽。
11)Event Kit 框架
??????????????? EventKit?框架 (EventKit.framework)提供存取用戶設(shè)備上的月歷事件的接口倦始。能夠使用該框架來做如下事情:
???????? 1)?獲得用戶月歷上存在的事件和提示;
??????? 2)增加事件到用戶月歷山卦;
??????? 3)為用戶創(chuàng)建提示和使它們出現(xiàn)在提示應(yīng)用中鞋邑;
?????? 4)為月歷事件配置提示信號,包括設(shè)置提示信號應(yīng)該什么時候觸發(fā)的規(guī)則账蓉。???????
?????重要提示:存取用戶的月歷和提示數(shù)據(jù)需要用戶的明確許可枚碗。應(yīng)用因此必須準(zhǔn)備好用戶拒絕的情形,也鼓勵應(yīng)用在其Info.plist文件中提供一個描述需要存取原因的鍵铸本。
12)Foundation框架
????????? Foundation框架 (Foundation.framework)提供Core Foundation框架提供的許多功能的Objective-C封裝肮雨。該框架提供如下功能的支持:
??集合數(shù)據(jù)類型(數(shù)組、集合等等)归敬;
??應(yīng)用打包Bundles酷含;
字符串管理;
日期和時間管理
原始數(shù)據(jù)塊管理
Preferences管理汪茧;
URL和流操作椅亚;
線程和運行環(huán);
Bonjour舱污;
?通訊端口管理呀舔;
?國際化;
規(guī)則表達式匹配扩灯;
Cache支持媚赖。
13)JavaScript??核心 框架
???? ? JavaScriptCore?框架 (JavaScriptCore.framework)為許多標(biāo)準(zhǔn)的JavaScript對象提供Objective-C語言的封裝。使用該框架來執(zhí)行JavaScript代碼和分析JSON數(shù)據(jù)珠插。
14)Mobile Core Services (移動核心服務(wù)框架)
MobileCore Services 框架(MobileCoreServices.framework)定義在通用類型標(biāo)識符(UTIs)中使用的低級別類型惧磺。
15)Multipeer Connectivity Framework(多方連接框架)
?????? MultipeerConnectivity?框架 (MultipeerConnectivity.framework)支持附近設(shè)備的發(fā)現(xiàn),并與那些設(shè)備直接通訊(不需要Internet連接)捻撑。
?????? 使用該框架能夠與附近設(shè)備通訊磨隘、容易的創(chuàng)建多人會話、支持可靠地傳輸順序和實時數(shù)據(jù)顾患。
該框架為發(fā)現(xiàn)和管理網(wǎng)絡(luò)服務(wù)提供可編程和UI-based的選項番捂。應(yīng)用能在ui中集成MCBrowserViewController類來顯示一個發(fā)現(xiàn)設(shè)備列表讓用戶選擇。另外也能使用MCNearbyServiceBrowser類來可編程的查找和管理對方設(shè)備江解。
16)Newsstand Kit 框架
???? Newsstand應(yīng)用為用戶提供了一個閱讀雜志和報紙的中心位置设预。想通過Newsstand提供雜志和報紙內(nèi)容的出版商能夠使用NewsstandKit 框架(NewsstandKit.framework)創(chuàng)建它們自己的iOS應(yīng)用,讓用戶啟動新雜志和報紙新聞的后臺下載犁河。在啟動下載后鳖枕,系統(tǒng)處理下載操作和當(dāng)內(nèi)容可獲得時通知應(yīng)用魄梯。
17)Pass Kit 框架
?????? Passbook應(yīng)用為用戶提供了一個存儲訂貨單、登機卡宾符、入場券和商業(yè)折扣卡的位置画恰。代替物理攜帶這些東西,用戶現(xiàn)在能在IOS設(shè)備上存儲它們吸奴,并和過去一樣的方式使用。
?????? Pass Kit?框架 (PassKit.framework)提供把這些功能集成到你的應(yīng)用的Objective-C接口缠局。
??????你能與web接口和文件格式信息組合使用該框架來創(chuàng)建和管理你們公司提供的電子入場券则奥。
????? 電子入場券由你們公司的web service創(chuàng)建并通過email、Safari或定制的應(yīng)用提交到用戶的設(shè)備狭园。電子入場券本身使用特殊的文件格式读处,在提交之前被加密簽名。文件格式標(biāo)識關(guān)于提供服務(wù)的相關(guān)信息以及用戶知道是什么服務(wù)的信息唱矛。
???????? 電子入場券也可以包含一個對卡進行校驗的條碼或其它信息罚舱,以便它能被兌換或使用。
18)Quick Look 框架
?????? QuickLook 框架(QuickLook.framework)提供了一個預(yù)覽應(yīng)用不直接支持的文件內(nèi)容的接口绎谦。
??????? 該框架主要打算用于應(yīng)用從網(wǎng)絡(luò)下載文件或處理來自不知道來源的文件的工作管闷。
?????? 在得到文件后,你能使用該框架提供的視圖控制器來直接顯示文件的內(nèi)容窃肠。
19)Safari Services 框架
???? SafariServices?框架 (SafariServices.framework)提供以可編程的方式增加URLs到用戶的Safari的書簽的支持包个。
20)Social Framework(社交框架)
????? Social框架(Social.framework)提供一個簡單的接口來存取用戶的社交媒體賬號。
??????該框架取代Twitter框架并增加了其它社交賬號冤留,包括Facebook碧囊、Sina微博以及其它。
??????應(yīng)用能使用該框架提交狀態(tài)更新和圖像到用戶賬號纤怒。該框架與Accounts框架一起為用戶提供單點登錄并確保存取的用戶賬號是經(jīng)過準(zhǔn)許的糯而。
21)Store Kit 框架
?????? StoreKit?框架 (StoreKit.framework)提供在ios應(yīng)用中購買內(nèi)容和服務(wù)的支持,也被稱作應(yīng)用內(nèi)購買泊窘。
?????? 例如熄驼,你能使用該功能來允許用戶去鎖另外的應(yīng)用功能≈菁龋或者如果你是一名游戲開發(fā)者谜洽,你能使用它來提供另外的游戲級別。在這兩種情況吴叶,StoreKit框架處理事務(wù)的收入方面事務(wù)阐虚,包括通過用戶的iTunes賬號處理付費請求,給應(yīng)用提供關(guān)于購買的信息蚌卤。
??????? Store Kit聚集在事務(wù)的金融方面实束,確保事務(wù)正確和安全奥秆。你的應(yīng)用處理事務(wù)的其它方面,包括購買接口的呈現(xiàn)和適當(dāng)內(nèi)容的下載(去鎖)咸灿。
???????? 工作的分工讓你能夠控制購買內(nèi)容的用戶體驗构订。由你決定你想呈現(xiàn)給用戶什么樣的購買接口和什么時候那樣做,你也決定你的應(yīng)用最好的提交機制避矢。
22)System Configuration Framework(系統(tǒng)配置框架)
?????? SystemConfiguration 框架(SystemConfiguration.framework)提供可達性接口悼瘾,你能用它來確定設(shè)備的網(wǎng)絡(luò)配置,也能使用該框架確定一個Wi-Fi或蜂窩連接是否在用以及一個特定的主機服務(wù)器是否能夠存取审胸。
四?Core OS Layer(核心OS層)
??????? CoreOS層包含其它大多數(shù)技術(shù)建在其之上的低級別的功能亥宿。雖然應(yīng)用不直接使用這些技術(shù),它們被其它框架使用砂沛。在需要顯而易見的處理安全或與外設(shè)通訊的情形烫扼,你也能使用該層提供的框架。
4.1? Core OS包含的框架:
1)Accelerate 加速框架
?? Accelerate框架 (Accelerate.framework)包含執(zhí)行數(shù)字信號處理碍庵、線性代數(shù)映企、圖像處理計算的接口。
?? 使用該框架的優(yōu)點是它們針對所有的ios設(shè)備上存在的硬件配置做了優(yōu)化静浴,因此你能寫一次代碼確保在所有設(shè)備上有效運行堰氓。
2)Core Bluetooth Framework(核心藍牙框架)
CoreBluetooth?框架 (CoreBluetooth.framework)允許開發(fā)者與藍牙低耗電外設(shè)(LE)交互。
使用該框架的Objective-C接口能夠完成如下工作:
?????????? 1苹享、掃描藍牙外設(shè)豆赏,連接和斷開發(fā)現(xiàn)的藍牙外設(shè);
???????? ? 2富稻、聲明應(yīng)用的服務(wù)掷邦,轉(zhuǎn)換ios 設(shè)備成其它藍牙設(shè)備的外設(shè);
????????? ?3椭赋、?從IOS設(shè)備廣播iBeacon信息抚岗;
?? ? 4、保存你的藍牙連接的狀態(tài)哪怔,當(dāng)應(yīng)用重新啟動時恢復(fù)那些連接宣蔚;
??????????5、藍牙外設(shè)可獲得性變化時獲得通知认境。
3)External Accessory Framework(外部附件框架)
?????? ExternalAccessory 框架(ExternalAccessory.framework)提供與連接到IOS設(shè)備的硬件附件通訊的支持胚委。
????? 附件能通過30-pin連接器或使用藍牙無線與IOS設(shè)備進行連接。該框架給你提供了獲得關(guān)于每一個可獲得的附件信息和啟動通訊會話的方式叉信。然后亩冬,你可自由的使用附件支持的命令直接操作附件。
4)Generic Security Services Framework(通用安全服務(wù)框架)
GenericSecurity Services?框架 (GSS.framework)給ios應(yīng)用提供一組標(biāo)準(zhǔn)安全相關(guān)的服務(wù)。該框架的基本接口規(guī)定在IETFRFC2743?andRFC4401硅急。除了提供標(biāo)準(zhǔn)的接口覆享,IOS還包括一些沒有在標(biāo)準(zhǔn)中規(guī)定但被許多應(yīng)用需要的一些管理證書需要的額外東西。
5)Security Framework(安全框架)
除了內(nèi)建的安全功能营袜,IOS也提供了一個明確的安全框架(Security.framework)撒顿,你能用它來保證應(yīng)用管理的數(shù)據(jù)的安全。
????? 該框架提供管理證書荚板、公有和私有key和信任策略的接口凤壁。支持產(chǎn)生加密安全偽隨機碼。它也支持在keychain(保存敏感用戶數(shù)據(jù)的安全倉庫)中保存證書和加密key跪另。
????? 公共加密庫提供對稱加密客扎、hash認證編碼(HMACs)、數(shù)字簽名等額外支持罚斗,數(shù)字簽名功能本質(zhì)上與iOS上沒有的OpenSSL庫兼容。
???? 在你創(chuàng)建的多個應(yīng)用之間共享keychain是可能的宅楞。共享使它容易在相同的一套應(yīng)用之間更平滑的協(xié)作针姿。例如,你能使用該功能來共享用戶口令或其它元素厌衙,否則可能使每個應(yīng)用都需要提示用戶距淫。
???? 為了在應(yīng)用之間共享數(shù)據(jù),必須為每個應(yīng)用的Xcode工程配置適當(dāng)?shù)臋?quán)限婶希。
6)System
????? System級包含kernel環(huán)境榕暇、驅(qū)動以及操作系統(tǒng)級別的unix接口。kernel本身負責(zé)操作系統(tǒng)的每一個方面:如虛擬內(nèi)存管理喻杈、線程彤枢、文件系統(tǒng)、網(wǎng)絡(luò)和互聯(lián)通信筒饰。在該層的驅(qū)動也提供在可獲得的硬件與系統(tǒng)框架之間的接口缴啡。為了安全,對kernel和驅(qū)動的存取被限制到一組有限的系統(tǒng)框架和應(yīng)用瓷们。
??? IOS提供一組存取許多操作系統(tǒng)低級別功能的接口业栅。應(yīng)用通過LibSystem庫存取這些功能。該C based的接口提供如下功能的支持:
?????????? 1) 多任務(wù)(POSIX線程和GCD)
?????????? 2) 網(wǎng)絡(luò)(BSDsockets)
?????????? 3) 文件系統(tǒng)存取
???????? ? 4) 標(biāo)準(zhǔn)I/O
?????????? 5) Bonjour和DNS服務(wù)
??????? ?? 6)? 位置信息
?????????? 7) ?內(nèi)存分配
???????? ? 8) 數(shù)學(xué)計算
7) 64-Bit Support
IOS原先是為32-bit架構(gòu)的設(shè)備設(shè)計的谬晕。自iOS 7碘裕,開始支持在64-bit進行編譯、鏈接和調(diào)試攒钳。所有的系統(tǒng)庫和框架是支持64位的帮孔,意味著它們能在32-bit和64-bit應(yīng)用中使用。當(dāng)以64-bit運行時編譯時不撑,應(yīng)用可能運行的更快你弦,因為在64-bit模式可以獲得額外的處理器資源惊豺。
????? iOS使用OS X和其它64-bitUNIX系統(tǒng)使用的LP64模式,意味著在這些系統(tǒng)移植時不會碰到太頭疼的事禽作。
轉(zhuǎn)自:https://blog.csdn.net/GooHong/article/details/28911301