在iOS中框架是一個目錄豆挽,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件,以及圖像鞭执、聲音文件等其他資源司顿。共享資源庫定義應用程序可以調用的函數(shù)和方法。
iOS為應用程序開發(fā)提供了許多可使用的框架兄纺,并構成IOS操作系統(tǒng)的層次架構大溜,分為四層,從上到下依次為:Cocoa Touch Layer(觸摸UI層)估脆、MediaLayer(媒體層)钦奋、Core Services Layer(核心服務層)、Core OS Layer(核心OS層)。
低層次框架提供IOS的基本服務和技術付材,高層次框架建立在低層次框架之上用來提供更加復雜的服務和技術,較高級的框架向較低級的結構提供面向對象的抽象。
在開發(fā)應用時應盡可能使用較高級的框架箩帚。如果要開發(fā)的國內在高層框架中沒有提供夺艰,你也可以使用較低層框架和技術。
Foundation和 UIKit框架是應用編程用到的兩個主要的框架富寿,能夠滿足大多數(shù)應用程序的開發(fā)需求睬隶。
UIKit框架提供的類,用于創(chuàng)建基于觸摸的用戶界面页徐。所有 iOS 應用程序都是基于 UIKit苏潜, 沒有這個框架,就無法交付應用程序变勇。UIKit提供應用程序的基礎架構恤左,用于在屏幕上繪圖、處理事件贰锁,以及創(chuàng)建通用用戶界面及其中元素赃梧。UIKit還通過管理屏幕上顯示的內容,來組織應用程序豌熄。
Foundation框架為所有應用程序提供基本的系統(tǒng)服務授嘀。應用程序以及 UIKit和其他框架,都是建立在 Foundation 框架的基礎結構之上锣险。? ? Foundation框架提供許多基本的對象類和數(shù)據(jù)類型蹄皱,使其成為應用程序開發(fā)的基礎。它還制定了一些約定(如用于取消分配等任務)芯肤,使代碼更加一致巷折,可復用性更好。
整個框架架構圖如下:
一Cocoa Touch Layer(觸摸UI層)
CocoaTouch Layer包含創(chuàng)建ios應用關鍵的框架崖咨。該層包含的框架定義應用的外觀锻拘,也提供基本的應用基礎和關鍵的技術支持,例如多任務击蹲、觸摸輸入署拟、推送通知和許多其它的高級系統(tǒng)服務。在開發(fā)應用時歌豺,應當首先研究該層的技術和技術看是否能夠滿足需要推穷。
1.1 Cocoa Touch Layer包含如下關鍵技術
1).AirDrop
AirDrop允許用戶與附近設備共享圖片、文檔类咧、urls鏈接以及其它種類的數(shù)據(jù)馒铃。
2)蟹腾、Text Kit
TextKit是處理文本和排版的一個全功能、高級別的類集合区宇。使用Text Kit你能在段落娃殖、列或者頁上對帶有風格的文本進行布局;也能在任意區(qū)域(如圖形)周圍布局流動的文本萧锉;還能用它來管理多種字體珊随。
開發(fā)應用時應該首先考慮使用Text Kit來進行文本呈現(xiàn),而不是Core Text柿隙。Text Kit與所有UIKit中的基于文本的控制集成允許應用更容易地創(chuàng)建叶洞、編輯、顯示和存儲文本禀崖。
3)衩辟、UIKit Dynamics
UIKit dynamics用來為符合UIDynamicItem協(xié)議的UIView對象或其它對象規(guī)定動畫行為。通過在應用的UI中集成真實世界行為和特性進波附,動畫行為為應用提供了一種增強用戶體驗的方式艺晴。
4)、Multitasking
在ios中多任務用來設計來使電池使用時間最大化掸屡。
5)封寞、Auto Layout
自動布局幫助你使用非常少的代碼來建立動態(tài)接口。
使用AutoLayout定義如何在用戶接口上布局元素的規(guī)則仅财,這些規(guī)則表達了視圖類之間的關系狈究,如規(guī)定一個按鈕總是處于它的父窗口的左邊緣20個點。
在Auto Layout中使用的實體是被稱為constraints的Objective-C對象盏求。
6)抖锥、Storyboards
串聯(lián)圖 是設計應用用戶接口的推薦方式。串聯(lián)圖讓你在一個地方就能夠設計全部的用戶接口碎罚,方便在一個位置看到所有的視圖和視圖控制器以及理解它們是如何一起工作的磅废。串聯(lián)圖的一個重要的部分是定義segues(segues是從一個視圖控制器到另一個的轉換)。這些轉換代表用戶接口之間的交互荆烈。你可以使用XCOE來可視的定義這些轉換或者通過編程啟動它們拯勉。
你能使用一個單串聯(lián)圖文件來存儲所有的應用視圖控制器和視圖,或者使用多個視圖串聯(lián)圖文件來組織用戶接口憔购。
在應用建立時間宫峦,Xcode讀取串聯(lián)圖文件的內容并把它分成多個能獨立加載的離散的片斷,以便獲得更好的性能倦始。UIKit框架提供了相應的類來從程序中存取一個串聯(lián)圖的內容斗遏。
7)山卦、UI State Preservation
UI狀態(tài)保存能夠使應用表現(xiàn)的一直運行鞋邑,從而為用戶提供無縫的體驗诵次。如果系統(tǒng)遇到內存壓力,系統(tǒng)可能安靜地強制停止一個或多個后臺應用枚碗。
當應用從前臺移到后臺時逾一,該服務能保存應用的視圖和視圖控制器的狀態(tài)。在下次應用重新啟動時肮雨,能夠使用先前保存的狀態(tài)信息來恢復視圖和視圖控制器到它們先前的配置遵堵,使應用表現(xiàn)得好像一直在運行。
8)怨规、Apple Push Notification Service
蘋果的推送通知服務提供了一種提示用戶關于新信息的方式陌宿,即使應用當前不在激活運行狀態(tài)。
使用該服務波丰,你能推送文本通知壳坪,在應用圖標上增加一個標記或者在任意時間觸發(fā)聲音提示。
這些消息讓用戶知道他們應該打開應用來接收相關信息掰烟。自Ios7開始,你甚至能推送無聲的通知來讓應用知道有了新的內容可以下載爽蝴。
為了使用IOS應用的推送通知,用戶需要做兩部分的工作纫骑。首先應用必須登記該通知服務以及在通知被提交時處理相關的通知數(shù)據(jù)蝎亚。第二,你必須提供一個服務端的進程來產(chǎn)生通知先馆。
服務端的進程可以使用你自己的本地服務器或者使用蘋果的推送通知服務发框。
9)、Local Notifications
本地通知作為推送通知機制的補充磨隘,可以給應用提供一種不依賴外部服務器產(chǎn)生本地通知的方式缤底。
運行在后頭的應用能使用本地通知作為當重要的事件發(fā)生時引起用戶注意的一種方式。例如番捂,運行在后臺的導航應用能使用本地通知來提示用戶什么時間該轉彎了个唧。
應用也能調度本地通知在將來的時間提交以及使那些通知在應用不運行也能被提交。
本地通知的一個優(yōu)點是它們與你的應用是獨立的设预。在一個通知已被調度徙歼,系統(tǒng)管理它的提交。另外當通知被提交時你的應用甚至不必運行鳖枕。
10)魄梯、Gesture Recognizers
手勢識別用來檢測通常類型的手勢。由于手勢識別使用與系統(tǒng)檢測手勢相同的試探方法宾符,因此手勢識別為應用提供了一個一致的行為酿秸。為了使用它,你能在你的視圖上附加手勢識別功能和并給它提供一個在手勢出現(xiàn)時要執(zhí)行的方法魏烫。
手勢識別跟蹤原始的觸摸事件和確定它們什么時候與想要的手勢匹配辣苏。
11)肝箱、System View Controllers
許多系統(tǒng)框架為標準的系統(tǒng)接口定義了視圖控制器。只要有可能稀蟋,為了呈現(xiàn)一致的用戶體驗煌张,就應該使用系統(tǒng)提供的視圖控制器而不是創(chuàng)建一個新的。
2.2 Cocoa Touch層框架
CoCoa Touch層包含如下框架:
1退客、Address Book UI Framework(地址本UI框架)
該框架提供一個面向對象的編程接口骏融。用來顯示標準的系統(tǒng)接口,來創(chuàng)建新的聯(lián)系人和編輯和選擇已存在的聯(lián)系人萌狂。
2档玻、Event Kit UI Framework(月歷事件UI框架)
該框架提供一個視圖控制器來呈現(xiàn)標準的系統(tǒng)接口,來觀察和編輯月歷相關的事件茫藏。EventKit UI Framework基于Event Kit framework框架窃肠。
3、Game Kit Framework(游戲工具框架)
該框架實現(xiàn)對游戲中心的支持刷允,讓用戶能夠在線共享他們的游戲相關的信息冤留。
4、iAd Framework(iAD框架)
該框架用來在應用中提供廣告條树灶。
當你想要顯示廣告時纤怒,廣告條與用戶UI上的標準的視圖進行合并。
這些視圖與蘋果的iAd服務一起工作天通,自動處理泊窘、加載和呈現(xiàn)富媒體廣告以及應答在那些廣告條上的點擊等所有相關的工作。
5像寒、Map Kit Framework(地圖工具框架)
MapKit提供與應用的UI組合的一個可滾動的地圖烘豹。
除了顯示一個地圖,你能使用該框架接口來定制地圖的內容和外觀诺祸,也能使用注解來標記感興趣的點携悯,也能使用定制的內容來與地圖內容疊置。例如筷笨,你可以在地圖上來畫一條公交路線憔鬼,或者使用注解來高亮顯示附近的商店和餐館。
除了顯示地圖胃夏,MapKit框架還能與地圖應用以及蘋果的地圖服務器集成來為用戶指引方向轴或。
地圖應用能夠給任意支持方向的應用提供方向的代理。如提供特定類型方向的應用仰禀,例如一個顯示地鐵路線的應用照雁,能登記請求接收地圖應用提供的方向。
應用也能向蘋果的服務器請求步行或駕駛方向答恶,并與他們定制的方向的路徑信息混合來為用戶提供完整的點到點體驗饺蚊。
6审胸、Message UI Framework( 消息UI框架)
該框架用來在應用中提供編輯郵件和sms消息的支持。
編輯支持包括一個呈現(xiàn)到你的應用的視圖控制器接口卸勺,并能設置這個視圖控制器的一些區(qū)域,如接收人烫扼、主題曙求、郵件主體和郵件想包括的任意附件。
在呈現(xiàn)視圖控制器后映企,也能為用戶提供一個在發(fā)送郵件之前可以編輯郵件的選項悟狱。
7、UIKit Framework
該框架提供實現(xiàn)圖形和事件驅動的應用的至關重要的基礎堰氓。包括:
1挤渐、基本的應用管理和基礎設施,包括應用的主循環(huán)双絮;
2浴麻、用戶接口管理,包括對storyboards和nib文件的支持囤攀;
3软免、一個用來封裝用戶UI內容的視圖控制器模式;
4焚挠、 標準系統(tǒng)視圖和控制對象膏萧;
5、提供處理觸摸和運動事件的支持蝌衔;
6榛泛、支持包括與iCloud集成功能的文檔模式;
7噩斟、 圖形和窗口支持曹锨,包括支持外部顯示器;
8剃允、多任務支持艘希;
9、打印支持硅急;
10覆享、 定制標準UIKit控制的外觀;
11营袜、支持文本和web內容撒顿;
12、剪切荚板、復制凤壁、粘貼的支持吩屹;
13、支持動畫UI拧抖;
14煤搜、通過url語義和框架接口與系統(tǒng)提供的其它應用集成的能力;
15唧席、對有障礙用戶的可存取性的支持擦盾;
16、支持ApplePush Notification服務淌哟;
17迹卢、本地通知調度和提交;
18徒仓、pdf 創(chuàng)建腐碱;
19、支持定制像系統(tǒng)鍵盤行為一樣的用戶輸入視圖掉弛;
20症见、支持創(chuàng)建與系統(tǒng)鍵盤交互的定制的文本視圖;
21殃饿、支持通過email,Twitter, Facebook和其它服務共享內容筒饰。
也支持一些設備特定功能的集成,例如
1壁晒、內建的攝像機瓷们;
2、用戶的圖片庫秒咐;
3谬晕、設備名和模式信息;
4携取、電池狀態(tài)信息攒钳;
5、接近傳感器信息雷滋;
6不撑、來自附件耳機的遠程控制信息
二、MediaLayer(媒體層)
媒體層包含在應用中實現(xiàn)多媒體體驗的圖形晤斩、聲音焕檬、視頻技術和框架。使用這層的技術可以使你容易的建立更加好看和好聽的應用澳泵。
2.1 包含的關鍵技術
2.1.1 圖形技術
高質量的圖形是所有應用的重要的組成部分实愚。IOS提供了許多幫助你定制藝術和圖形屏幕的技術。IOS圖形技術為其提供了廣泛的支持,并可以與UIKit視圖架構無縫工作腊敲。
你能使用標準的視圖來快速提交高質量的接口击喂,或者使用本層的圖形技術創(chuàng)建你自己的定制視圖來提交一個更加豐富的圖形體驗。
1)碰辅、UIKit graphics
UIKit定義的繪制圖像和Bézier路徑懂昂,以及動畫視圖內容的高級別技術。
UIKit視圖提供快速和有效的方式來呈現(xiàn)圖像和文本內容没宾。
UIKIT視圖也能通過顯示和使用UIKitdynamics技術進行動畫凌彬,并為用戶提供反饋,促進用戶交互榕吼。
2)、CoreGraphics 框架
CoreGraphics也稱作Quartz勉失,是對定制的2D向量和圖像呈現(xiàn)提供支持的本地繪制引擎羹蚣。
該框架提供的引擎雖然沒有OpenGLES引擎速度快,但該框架能夠很好地適合于呈現(xiàn)定制的2d圖形和動態(tài)圖像乱凿。
3)顽素、CoreAnimation框架
CoreAnimation也是Quartz核心框架的一部分,是優(yōu)化應用動畫體驗的基礎技術徒蟆。
UIKit視圖基于 Core Animation提供視圖級別的動畫支持胁出。
當你想對動畫行為有更多控制時也能直接使用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類始苇,以便能夠使用面向對象接口來提供OpenGL ES的強大能力。
6)筐喳、Text Kit和CoreText
Text Kit是UIKit框架的家族催式,用來來執(zhí)行最好的排面和文本管理。如果你的應用實現(xiàn)先進的文本操作避归,Text Kit提供與應用視圖的無縫集成荣月。
CoreText是處理先進排面和布局的低級別的c語言框架。
7)梳毙、Image I/O
ImageI/O提供讀寫大多數(shù)圖像格式的接口喉童。
8)、Assets Library
AssetsLibrary框架讓你存取用戶的圖片、視頻和媒體堂氯。
你想在應用中集成用戶自己的內容時可以使用該框架蔑担。
2.1.2 聲音技術
聲音技術工作于底層硬件之上,為用戶提供更加豐富的聲音體驗咽白。這些體驗包括播放和記錄高質量的聲音啤握、處理MIDI內容以及使用設備內建的聲音 等能力,
1). Media Player framework
該框架是一個高級別的框架晶框, 用來為用戶提供對iTunes庫存取的容易方式排抬,也提供對播放軌跡和播放列表的支持。
當你想快速在應用中集成聲音以及不需要控制播放行為時可以使用該框架授段。
2)蹲蒲、AV Foundation
AVFoundation是管理聲音以及視頻播放和記錄的面向對象接口。
在記錄聲音和想對聲音播放過程有更好的控制時可以使用該框架侵贵。
3)届搁、OpenAL
OpenAL是一個提供位置音效的跨平臺的工業(yè)標準技術和接口。
游戲開發(fā)者經(jīng)常使用該技術來提供高質量的聲音窍育。
4)卡睦、Core Audio
Core Audio是一組簡單和智能的接口來記錄和播放聲音以及MIDI內容。
在需要對聲音有更好控制時使用該框架漱抓。
2.1.3? 視頻技術
視頻技術提供管理應用中的靜態(tài)視頻內容或者播放來自Internet的視頻流的支持表锻。
對于帶有適當?shù)挠涗浻布脑O備,該框架還能夠記錄視頻以及與應用進行集成乞娄。
1).UIImagePickerController
UIImagePickerController是一個選擇用戶媒體文件的UIKit視圖控制器瞬逊。
2)、Media Player
MediaPlayer框架提供一組呈現(xiàn)視頻內容的簡單易用的接口仪或,該框架支持全屏和小窗口視頻播放码耐,也為用戶提供可選的播放控制。
3)溶其、AVFoundation
AVFoundation提供先進的視頻播放和記錄能力骚腥。
在需要對視頻呈現(xiàn)和記錄有更多的控制時使用該框架,例如在實時應用中分層顯示實時視頻和應用提供的其它內容瓶逃。
4)束铭、CoreMedia
CoreMedia框架為操作媒體定義低級別的數(shù)據(jù)類型和接口。
當你需要對視頻內容有無比的控制時可以使用該框架厢绝。
2.1.4? AirPlay技術
AirPlay讓應用串流聲音和視頻內容到Apple TV或者串流聲音內容到第三方揚聲器和接收器契沫。
AirPlay內建于許多框架,包括UIKit昔汉、Media Player懈万、AVFoundation、Core Audio。因此在大多數(shù)情況你不需要為了支持它做任何事会通。在使用那些框架時口予,當播放內容時自動獲得AirPlay支持。當用戶選擇使用AirPlay播放內容時系統(tǒng)自動進行路由涕侈。
2.2包含的框架
MediaLayer提供如下框架和服務沪停。
2.2.1、Assets Library 框架
AssetsLibrary 框架(AssetsLibrary.framework)提供對用戶設備上圖片應用管理的圖片和視頻的存取。
使用該框架來存取用戶保存的圖片相冊或導入到設備的任意相冊中的圖片,你也能保存新的圖片和視頻到用戶的圖片相冊咳蔚。
2.2.2、AV Foundation 框架
AVFoundation 框架 (AVFoundation.framework)提供一組播放舷礼、記錄和管理聲音和視頻內容的Objective-C類。
當你想在應用的ui接口無縫集成媒體能力時使用該框架郊闯。
你也能使用它來進行更先進的媒體處理妻献,例如同時播放多個聲音或者控制播放和記錄過程的多個方面。
該框架提供的服務包括:
1)聲音會話管理虚婿,包括對系統(tǒng)聲明你的應用聲音能力旋奢;
2)對應用媒體資源的管理泳挥;
3)對編輯媒體內容的支持然痊;
4)捕捉聲音和視頻的能力;
5)播放聲音和視頻的能力屉符;
6)軌跡管理剧浸;
7)媒體元數(shù)據(jù)的管理;
8)立體拍攝矗钟;
9)聲音之間的精確同步唆香;
10)提供一個確定聲音文件細節(jié)內容的Objective-C接口,例如數(shù)據(jù)格式吨艇,采樣率躬它,通道數(shù);
11) 通過AirPlay串流內容东涡。
2.2.3冯吓、Core Audio 框架
Core Audio是一個對聲音處理提供本地支持的框架家族。這些框架支持聲音的產(chǎn)生疮跑、記錄组贺、混合和回放。你也能使用這些接口處理MIDI內容以及串流聲音和MIDI內容到其它應用祖娘。
Core Audio框架包括如下框架:
CoreAudio.framework
定義Core Audio框架使用的所有數(shù)據(jù)類型失尖。
AudioToolbox.framework
提供聲音文件和聲音流的播放和記錄服務。也提供管理聲音文件,播放系統(tǒng)警告聲音掀潮,在某些設備上觸發(fā)震動的支持菇夸。
AudioUnit.framework
提供使用內建聲音單元。也提供使你的應用的聲音內容作為對其它應用可視的聲音組件的支持胧辽。
CoreMIDI.framework
提供與MIDI設備通訊的標準方式峻仇,包括硬件鍵盤和合成器。你使用這個框架來發(fā)送和接收MIDI消息以及與通過dock連接器或網(wǎng)絡連接到IOS設備的MIDI外設交互邑商。
MediaToolbox.framework
提供對聲音tap接口的存取摄咆。
2.2.4、Core Graphics 框架
CoreGraphics.framework包含Quartz 2D繪制api人断。
Quartz是一個原先用在OS X的先進的吭从、向量繪制引擎。Quartz支持路徑繪制恶迈,抗鋸齒呈現(xiàn)涩金,剃度,圖像暇仲,顏色步做,坐標空間轉換以及pdf 內容創(chuàng)建、顯示和分析等功能奈附。
雖然這個api是C-based接口全度,但它使用了面向對象抽象來表現(xiàn)基本的繪制對象,因此使它容易存儲和重用圖形內容斥滤。
2.2.5将鸵、Core Image 框架
CoreImage 框架(CoreImage.framework)提供一組強大的內建過濾器來操作視頻和靜態(tài)圖像。
你能在觸摸彈起佑颇、糾正圖片以及面部和特征檢測等許多方面使用這些內建的過濾器顶掉。這些過濾器的先進特點是它們操作在非破壞方式,即原先的圖像不被改變挑胸。
這些過濾器針對底層硬件進行了優(yōu)化痒筒,因此它們是快速和有效的。
2.2.6茬贵、Core Text 框架
CoreText 框架 (CoreText.framework)提供一個對文本進行布局和字體處理的簡單的簿透、高性能的C-based接口。
該框架用在不使用TextKit但仍想獲得在字處理應用中發(fā)現(xiàn)的先進文本處理能力闷沥。
該框架提供了一個智能的文本布局引擎萎战,包括在其它內容周圍環(huán)繞文本的能力,它也支持使用多種字體和呈現(xiàn)屬性的先進的文本風格舆逃。
2.2.7蚂维、Core Video 框架
CoreVideo 框架 (CoreVideo.framework)為Core Media框架提供緩沖和緩沖池支持戳粒。多數(shù)應用從不直接使用該框架。
2.2.8虫啥、Game Controller 框架
GameController 框架 (GameController.framework)讓你在應用中發(fā)現(xiàn)和配置針對iPhone/iPod/iPad設備的游戲控制器蔚约。
游戲控制器可以是物理連接到iOS設備或者是通過藍牙無線連接。GameController框架當控制器可獲得時通知你的應用讓應用可以規(guī)定哪個控制器輸入與你的應用相關涂籽。
2.2.9苹祟、GLKit 框架
GLKit框架 (GLKit.framework)包含一組簡化創(chuàng)建OpenGLES應用的Objective-C based 單元類。
GLKit支持應用開發(fā)的四個關鍵領域
1)GLKView和GLKViewController類提供一個OpenGLES視圖和其呈現(xiàn)循環(huán)的標準實現(xiàn)评雌。
OpenGLES視圖代表應用管理底層的framebuffer對象树枫。應用只需在視圖上繪制。
2) GLKTextureLoader類提供在你的應用中使用圖像轉換和加載線程景东,允許應用自動加載紋理圖像到應用的上下文砂轻。
能夠異步或同步加載紋理。當異步加載紋理時斤吐,應用應提供一個完成處理塊搔涝,該處理塊在紋理加載進應用上下文時被調用。
3)GLKit框架提供向量和措、矩陣和3d 旋轉以及提供OpenGLES 1.1上的矩陣庄呈。
4)GLKBaseEffect,GLKSkyboxEffect,和GLKReflectionMapEffect類實現(xiàn)給通用圖形操作提供可配置的圖形著色。尤其GLKBaseEffect類實現(xiàn)了OpenGL ES 1.1規(guī)范上的光亮和材質模式派阱,簡化了移植一個應用從OpenGL ES 1.1到OpenGL ES最后版本的努力诬留。
2.2.10、Image I/O 框架
ImageI/O 框架(ImageIO.framework)提供輸入和輸出圖像數(shù)據(jù)和圖像元數(shù)據(jù)的接口颁褂。
該框架利用CoreGraphics數(shù)據(jù)類型和功能故响,并支持在ios 上所有的可獲得的標準的圖像類型傀广。你能使用這個框架存取Exif和IPTC元數(shù)據(jù)屬性颁独。
2.2.11、Media Accessibility 框架
MediaAccessibility 框架 (MediaAccessibility.framework)管理媒體文件中closed-caption內容的呈現(xiàn)伪冰。
該框架與新的設置配合工作可以讓用戶決定是否允許closed-caption顯示誓酒。
2.2.12、Media Player 框架
MediaPlayer 框架(MediaPlayer.framework)提供應用中播放聲音和視頻的高級別支持贮聂。能夠使用該框架做如下工作:
1) 播放視頻到用戶屏幕或通過AirPlay到另外的設備屏幕靠柑。能夠全屏幕播放視頻或以可改變視圖大小的方式播放。
2)存取用戶的iTunes音樂庫吓懈。能夠播放音樂軌跡和播放列表歼冰、搜索音樂、給用戶提供一個媒體picker呈現(xiàn)接口耻警。
3)配置和管理電影的回放隔嫡。
4) 在鎖定屏幕和app 切換窗口上顯示NowPlaying信息甸怕。當內容通過AirPlay提交時還能顯示到AppleTV上。
5)檢測視頻通過AirPlay被串流的時間腮恩。
2.2.13梢杭、OpenAL 框架
OpenAudio Library (OpenAL)接口是用來在應用中提供位置音效的跨平臺的標準。
能夠使用該接口在游戲和其它需要位置音效輸出的程序中實現(xiàn)高性能秸滴、高質量的聲音武契。
因為OpenAL是跨平臺的標準,在iOS使用OpenAL編寫的代碼能夠容易地移植到許多其它平臺荡含。
2.2.14咒唆、OpenGL ES 框架
OpenGLES 框架 (OpenGLES.framework)提供繪制2d和3d內容的工具, 它是一個C-based的框架释液。
該框架以最接近設備硬件的方式為全屏沉浸式應用例如游戲提供細粒度的圖形控制和高的幀率钧排。
你能夠與EAGL配合使用這個框架,為OpenGL ES 繪制調用和UIKit的本地窗口對象之間提供接口均澳。
該框架支持OpenGLES 1.1, 2.0, 3.0規(guī)范恨溜。2.0規(guī)范增加了片段和頂點著色的支持,3.0規(guī)范增加了更多的功能找前,包括多個呈現(xiàn)目標和變換反饋糟袁。
2.2.15、Quartz Core 框架
QuartzCore 框架(QuartzCore.framework)包含Core Animation接口躺盛。
Core Animation是一個先進的復合技術项戴,使用它能容易創(chuàng)建快和有效的view-based的動畫。
復合引擎利用底層硬件來有效的實時操作視圖內容槽惫。
只需規(guī)定動畫的起始點周叮,CoreAnimation做剩下的工作。
因為Core Animation內嵌在UIView架構的底層界斜,因此它總是可用的仿耽。
2.2.16Sprite Kit 框架
SpriteKit 框架 (SpriteKit.framework)框架為2d和2.5d游戲提供硬件加速的動畫系統(tǒng)。
SpriteKit提供大多數(shù)游戲需要的基礎各薇,包括一個圖形引擎和動畫系統(tǒng)项贺,聲音播放支持,一個物理仿真引擎峭判。? 使用SpriteKit不需你自己創(chuàng)建這些事情开缎,使你聚焦在內容設計和內容的高級別的交互上。
在Sprite Kit應用中內容組織為場景林螃。一個場景包括紋理對象奕删,視頻,路徑圖形疗认,核心圖像過濾器和其它的特效完残。SpriteKit利用這些對象砌滞,確定這些對象到屏幕上的最有效的方式。當在場景中到了動畫內容的時刻坏怪,你能使用SpriteKit來顯式規(guī)定你想執(zhí)行的行動或使用物理仿真引擎來為那些對象定義物理行為(例如重力贝润、引力或排拆力)。
除了SpriteKit框架铝宵,也有其它Xcode工具來創(chuàng)建顆粒發(fā)射效果和紋理圖打掘。你能使用Xcode工具來管理應用資源和快速地更新Sprite Kit場景。
三 CoreServices Layer(核心服務層)
CoreServices Layer包含應用需要的基礎的系統(tǒng)服務鹏秋。這些服務中的核心是CoreFoundation和Foundation框架尊蚁,定義了所有應用使用的基本類型。
該層也包含獨立的技術來支持一些其它功能侣夷, 例如位置横朋、iCloud、社交媒體和網(wǎng)絡百拓。
3.1 包含的高級功能:
Peer-to-Peer Services(點到點服務)
這個Multipeer Connectivity框架提供通過藍牙進行p2p連接的能力琴锭。
你能使用p2p連接來啟動與附近設備的通訊會話。
雖然p2p連接主要用在游戲中衙传,你也能在其它類型的應用中使用這個功能决帖。
iCloud Storage(云存儲)
iCloud存儲讓應用把用戶文檔和數(shù)據(jù)寫到一個中心位置,用戶然后能從他們的計算機和ios 設備存取這些數(shù)據(jù)蓖捶。
使用iCloud可以使用戶文檔無所不在地回,意味著用戶能從任何設備閱讀或編輯那些文檔,而不需要顯式的同步或文件傳輸俊鱼。存儲文檔到用戶的iCloud賬戶也為用戶提供了一層安全刻像。即使用戶的設備丟失,那些設備上的文檔如果已經(jīng)保存到iCloud就不會丟失并闲。
應用能以兩種方式使用 iCloud存儲细睡,每一種有不同的使用意圖:
1) iCloud文檔存儲。
可以使用這個功能在用戶的iCloud賬戶存儲用戶文檔和數(shù)據(jù)焙蚓。
2)iCloud鍵值存儲纹冤。
使用這個功能在應用之間共享數(shù)據(jù)洒宝。
大多數(shù)應用使用iCloud文檔存儲來共享來自用戶賬戶的文檔购公。使用iCloud文檔存儲用戶關心的是文檔能否能夠在設備之間共享以及他們是否能夠從一個給定設備查看和管理那些文檔。
相對的雁歌,iCloud鍵值存儲是應用與應用的其它實例共享小量數(shù)據(jù)(幾十k字節(jié))的方式宏浩,應用應當用它存儲非緊急的應用數(shù)據(jù),例如設置靠瞎。
Automatic Reference Counting(自動引用計數(shù))
AutomaticReference Counting(ARC)是一個編譯級別的功能比庄,用它來簡化Objective-C對象生命周期過程的管理求妹,以此代替用戶必須記住什么時候應該保持和釋放對象。
ARC評估對象的生命周期需求和自動在編譯時間插入適當?shù)姆椒ㄕ{用佳窑。
ARC用來代替ios 的早期版本中存在的傳統(tǒng)的管理內存的編程模式制恍。
新創(chuàng)建的工程自動使用ARC。XCODE也提供了移植工具幫助你轉換遺留的工程來使用ARC.
Block Objects(塊對象)
BlockObjects是一個能夠與你的C或Objective-C代碼集成的C語言的構造塊神凑。一個blockobject本質上是一個異步功能和相關的數(shù)據(jù)净神。在其它語言中有時也被稱做closure或lambda。
Blocks尤其用作回調或放在你需要一種容易的組合執(zhí)行代碼和相關數(shù)據(jù)方式的地方溉委。
在ios鹃唯,通常在下面的場景使用Blocks:
1)作為代理或代理方法的代替;
2) 作為回調功能的代替瓣喊;
3)為某個一次性操作實現(xiàn)其完成處理函數(shù)坡慌;
4)? 在一個集合中的所有項上執(zhí)行一個任務;
5)與提交隊列一起執(zhí)行異步任務藻三。
Data Protection(數(shù)據(jù)保護)
DataProtection允許應用利用設備上已有的內建的加密方法來使用用戶的敏感數(shù)據(jù)洪橘。
當應用指定一個特定的文件被保護時,系統(tǒng)在磁盤上以加密格式存儲該文件棵帽。當設備鎖定時梨树,該文件的內容不能被應用和任何潛在的侵入者存取♂可是當設備由用戶解鎖時抡四,一個解密key被創(chuàng)建允許你的應用存取那個文件。
用戶也可以使用其它級別的數(shù)據(jù)保護機制仗谆。
實現(xiàn)數(shù)據(jù)保護需要你考慮如何創(chuàng)建和管理你想保護的數(shù)據(jù)指巡。應用必須設計在數(shù)據(jù)的創(chuàng)建時間加密數(shù)據(jù),以及當用戶鎖定或解鎖設備時為存取條件改變做好準備隶垮。
File-Sharing Support(文件共享支持)
File-SharingSupport使用戶數(shù)據(jù)文件在iTunes 9.1和以后上可被其它應用獲得藻雪。一個應用聲明支持文件共享使它的/Documents目錄下的內容對其它用戶可獲得。用戶然后當需要時能夠把文件從iTunes移進或移出應用的Documents目錄狸吞。
這個特征不允許應用與相同設備上的其它應用共享應用勉耀,這需要粘貼板或一個文檔交互控制器對象。
應用為了允許文件共享支持蹋偏,需要做如下工作:
1便斥、 在應用的Info.plist文件中增加UIFileSharingEnabled鍵,并設置其值為YES威始。
2)枢纠、在你的應用的Documents中放你想共享的文件;
3黎棠、當設備插進用戶的計算機時晋渺,iTunes在選中設備的Apps標簽下顯式一個文件共享節(jié)镰绎;
4、用戶然后能夠增加文件到設備的文檔目錄或移動文件到桌面木西。
支持文件共享的應用應該能夠識別文件什么時候增加到其Documents目錄和做出適當?shù)膽鸪肫堋@鐟每梢允谷我庑挛募膬热菘梢詮乃慕涌讷@得。也應該從不把Documents目錄的文件列表呈現(xiàn)給用戶來請求用戶決定對那些文件做什么八千。
Grand Central Dispatch
GrandCentral Dispatch(GCD)是一個BSD技術驶臊,應用可以用來管理其任務的執(zhí)行。
GCD與高優(yōu)化的核組合成一個異步編程模式叼丑,來提供方便和更有效的對線程的替代关翎。GCD也為許多低級別的任務提供一個方便的選擇,例如讀和寫文件描述符鸠信,實現(xiàn)定時器和監(jiān)視信號和處理事件纵寝。
In-App Purchase(應用內購買)
In-App Purchase 提供在應用中銷售應用特定的內容和服務以及來自iTunes的內容的能力。
這個功能使用StoreKit框架實現(xiàn)星立,并提供使用用戶的iTunes賬號來處理金融方面的事務需要的基礎爽茴。
應用處理全部用戶體驗和供購買的內容及可獲得服務的呈現(xiàn)。作為可下載的內容绰垂,你能把可下載的內容放到你自己的服務器或使用蘋果的服務器室奏。
SQLite
SQLite庫讓你在你的應用中嵌入一個輕量級的sql數(shù)據(jù)庫,而不需要運行一個分離的遠程數(shù)據(jù)庫服務進程劲装。從你的應用胧沫,你能創(chuàng)建本地數(shù)據(jù)庫文件,管理數(shù)據(jù)庫表和表中的數(shù)據(jù)記錄占业。
SQLite庫為通用功能使用設計绒怨,但已經(jīng)被優(yōu)化來提供對數(shù)據(jù)記錄更快速的存取。
XML Support
Foundation框架提供一個NSXMLParser類用來從一個xml文檔中引出元素谦疾。
操作xml內容的額外的支持由libxml2庫提供支持南蹂。libxml2開源庫讓你快速地分析或寫任意的xml數(shù)據(jù)和轉換xml內容到html.
3.2 Core Services Frameworks(核心服務框架)
Core Services Frameworks包含下面的一些框架。
1)念恍、Accounts Framework(帳戶框架)
Accounts框架 (Accounts.framework)為確定的用戶賬號提供單點登錄模式六剥。
單點登錄通過消除用戶分離的多個賬號需要的多次登錄提示,來增強用戶體驗峰伙。它也通過為應用管理賬號認證過程來簡化開發(fā)模式疗疟。
該框架需要與Social框架配合使用。
2)Address Book Framework(地址本框架)
AddressBook 框架(AddressBook.framework)提供可編程存取用戶的聯(lián)系人數(shù)據(jù)庫的方式词爬。
如果應用使用聯(lián)系人信息秃嗜,你能使用該框架來存取和修改聯(lián)系人信息。例如一個聊天應用可以使用該框架來引出可能的聯(lián)系人列表顿膨,通過聯(lián)系人列表來啟動一個會話以及在特定視圖顯示那些聯(lián)系人锅锨。
重要提示:存取用戶的聯(lián)系人數(shù)據(jù)需要用戶的明確的許可。應用因此必須準備好用戶拒絕存取的情形恋沃。應用也鼓勵提供Info.plist鍵來描述需要存取的原因必搞。
3)Ad Support Framework(廣告支持框架)
AdSupport 框架 (AdSupport.framework)提供存取應用用于廣告功能的一個標識。
該框架也提供一個指示用戶是否選擇廣告跟蹤的標志囊咏。應用在試圖存取廣告標識前需要度和判斷這個標志恕洲。
4)CFNetwork 框架
CFNetwork框架 (CFNetwork.framework)是高性能的使用面向對象對網(wǎng)絡協(xié)議進行抽象的一組C-based接口。這些抽象提供對協(xié)議棧細節(jié)的控制梅割,使它容易使用低級別的構造例如BSDsockets霜第。
你能使用該框架簡化與ftp或http服務器通訊或決定dnshosts的任務。使用CFNetwork 框架户辞,你能:
1泌类、使用BSD sockets。
2底燎、使用SSL或TLS創(chuàng)建安全連接刃榨。
3、決定dnshosts双仍。
4枢希、與HTTP服務器、認證HTTP服務器朱沃、HTTPS服務器交互苞轿。
5、與FTP服務器交互逗物。
6呕屎、發(fā)布、解決和瀏覽Bonjour服務敬察。
CFNetwork物理和理論上基于BSD sockets秀睛。
5)Core Data 框架
CoreData 框架 (CoreData.framework)框架是管理MVC應用中的數(shù)據(jù)模式的一種技術。
CoreData框架打算在數(shù)據(jù)模式是高結構化的應用中使用莲祸。
代替編程定義數(shù)據(jù)結構蹂安,在xcode中能夠使用圖形工具來建立一個表現(xiàn)你的數(shù)據(jù)模式的綱要。在運行時锐帜,你的數(shù)據(jù)模式實體的實例通過CoreData框架被創(chuàng)建田盈、管理和獲得。
通過為你的應用管理其數(shù)據(jù)模式缴阎,CoreData大大減少了必須書寫的代碼量允瞧。CoreData也提供如下功能:
1、為優(yōu)化性能在SQLite數(shù)據(jù)庫中存儲對象數(shù)據(jù);
2述暂、一個管理數(shù)據(jù)表視圖結果的 NSFetchedResultsController類痹升;
3、對基本的文本編輯之外的undo/redo的管理畦韭;
4疼蛾、支持屬性值的校驗;
5艺配、支持傳播改變確保對象之間的關系保持一致性察郁;
6、支持分組转唉、過濾和在內存中優(yōu)化數(shù)據(jù)皮钠。
如果你開始開發(fā)一個新應用或計劃對已有應用進行大的更新,應該考慮使用CoreData赠法。
6)Core Foundation 框架
CoreFoundation 框架 (CoreFoundation.framework)是一組C-based接口麦轰,為ios應用提供基本的數(shù)據(jù)管理和服務功能。該框架包括如下支持:
集合數(shù)據(jù)類型(數(shù)組期虾、集合等等)原朝;
應用打包Bundles;
字符串管理镶苞;
日期和時間管理
原始數(shù)據(jù)塊管理
Preferences管理喳坠;
URL和流操作;
線程
9茂蚓、端口和socket通訊壕鹉。
CoreFoundation框架與Foundation框架緊密相關,為相同的基本功能提供Objective-C接口聋涨。
當你需要混合使用Foundation對象和Core Foundation類型時晾浴,你能利用兩個框架之間存在的“toll-freebridging”。toll-free bridging”意味著你能可交換地在兩個框架的方法和功能中使用一些CoreFoundation和Foundation類型牍白。這個支持對許多數(shù)據(jù)類型可用脊凰,包括集合和字符串數(shù)據(jù)類型。
每個框架的類和類型描述聲明一個對象是否是toll-freebridged以及在是的情況下來標識它連接到什么對象茂腥。
7)Core Location 核心位置框架
CoreLocation 框架? (CoreLocation.framework)為應用提供位置信息狸涌。該框架使用板上的GPS、蜂窩最岗、或者Wi-Fi來定位用戶的當前經(jīng)度和緯度帕胆。
你可在你的應用中集成該技術為用戶提供位置信息。例如般渡,你可實現(xiàn)一個基于用戶的當前位置搜索附近餐館懒豹、商店或者銀行的應用芙盘。CoreLocation框架也提供如下能力:
1) 在包括磁力計的ios設備上存取羅盤信息;
2) 基于地理位置或藍牙beacon進行區(qū)域監(jiān)視脸秽;
3) 支持使用蜂窩基站的低耗電的位置監(jiān)視儒老;
4)與MapKit配合來增強在特定情景下的位置數(shù)據(jù)的質量,例如開車時豹储。
8)Core Media Framework(核心媒體框架)
CoreMedia 框架(CoreMedia.framework)提供由AV Foundation框架使用的低級別的媒體類型贷盲。大多數(shù)應用從不需要使用該框架淘这,但少數(shù)需要更精確控制音視頻內容創(chuàng)建和呈現(xiàn)的開發(fā)者可以使用它累榜。
9)Core Motion Framework (核心運動框架)
CoreMotion 框架 (CoreMotion.framework)提供一組接口來存取設備上可獲得的運動數(shù)據(jù)站刑。
該框架支持使用一組新的block-based接口來存取原始和加工過的加速度計數(shù)據(jù)。對于帶有陀螺儀的設備,你也能獲得原始的陀螺儀數(shù)據(jù)和加工過的反應設備方向和旋轉速度的數(shù)據(jù)胧谈。
你能在游戲或其它使用運動作為輸入或作為增強用戶體驗的方式的應用中使用加速度計和陀螺儀兩種數(shù)據(jù)。對于帶有計步硬件的設備偿枕,你能存取它的數(shù)據(jù)來跟蹤健康相關的運動苦囱。
10)Core Telephony Framework(核心電話框架)
CoreTelephony 框架 (CoreTelephony.framework)提供與蜂窩電話的通話相關的信息交互的接口。
可以使用該框架來獲得用戶的蜂窩服務提供者的信息宁脊。對于對蜂窩call事件感興趣的應用例如VoIP應用也能在那些事件出現(xiàn)時被通知断国。
11)Event Kit 框架
EventKit 框架 (EventKit.framework)提供存取用戶設備上的月歷事件的接口。能夠使用該框架來做如下事情:
1) 獲得用戶月歷上存在的事件和提示榆苞;
2)增加事件到用戶月歷稳衬;
3)為用戶創(chuàng)建提示和使它們出現(xiàn)在提示應用中;
4)為月歷事件配置提示信號坐漏,包括設置提示信號應該什么時候觸發(fā)的規(guī)則薄疚。
重要提示:存取用戶的月歷和提示數(shù)據(jù)需要用戶的明確許可。應用因此必須準備好用戶拒絕的情形赊琳,也鼓勵應用在其Info.plist文件中提供一個描述需要存取原因的鍵街夭。
12)Foundation框架
Foundation框架 (Foundation.framework)提供Core Foundation框架提供的許多功能的Objective-C封裝。該框架提供如下功能的支持:
集合數(shù)據(jù)類型(數(shù)組躏筏、集合等等)板丽;
應用打包Bundles;
字符串管理趁尼;
日期和時間管理
原始數(shù)據(jù)塊管理
Preferences管理埃碱;
URL和流操作;
線程和運行環(huán)弱卡;
Bonjour乃正;
通訊端口管理;
國際化婶博;
規(guī)則表達式匹配瓮具;
Cache支持。
13)JavaScript? 核心 框架
JavaScriptCore 框架 (JavaScriptCore.framework)為許多標準的JavaScript對象提供Objective-C語言的封裝。使用該框架來執(zhí)行JavaScript代碼和分析JSON數(shù)據(jù)名党。
14)Mobile Core Services (移動核心服務框架)
MobileCore Services 框架(MobileCoreServices.framework)定義在通用類型標識符(UTIs)中使用的低級別類型叹阔。
15)Multipeer Connectivity Framework(多方連接框架)
MultipeerConnectivity 框架 (MultipeerConnectivity.framework)支持附近設備的發(fā)現(xiàn),并與那些設備直接通訊(不需要Internet連接)传睹。
使用該框架能夠與附近設備通訊耳幢、容易的創(chuàng)建多人會話、支持可靠地傳輸順序和實時數(shù)據(jù)欧啤。
該框架為發(fā)現(xiàn)和管理網(wǎng)絡服務提供可編程和UI-based的選項睛藻。應用能在ui中集成MCBrowserViewController類來顯示一個發(fā)現(xiàn)設備列表讓用戶選擇。另外也能使用MCNearbyServiceBrowser類來可編程的查找和管理對方設備邢隧。
16)Newsstand Kit 框架
Newsstand應用為用戶提供了一個閱讀雜志和報紙的中心位置店印。想通過Newsstand提供雜志和報紙內容的出版商能夠使用NewsstandKit 框架(NewsstandKit.framework)創(chuàng)建它們自己的iOS應用,讓用戶啟動新雜志和報紙新聞的后臺下載倒慧。在啟動下載后按摘,系統(tǒng)處理下載操作和當內容可獲得時通知應用。
17)Pass Kit 框架
Passbook應用為用戶提供了一個存儲訂貨單纫谅、登機卡炫贤、入場券和商業(yè)折扣卡的位置。代替物理攜帶這些東西付秕,用戶現(xiàn)在能在IOS設備上存儲它們兰珍,并和過去一樣的方式使用。
Pass Kit 框架 (PassKit.framework)提供把這些功能集成到你的應用的Objective-C接口盹牧。
你能與web接口和文件格式信息組合使用該框架來創(chuàng)建和管理你們公司提供的電子入場券俩垃。
電子入場券由你們公司的web service創(chuàng)建并通過email、Safari或定制的應用提交到用戶的設備汰寓。電子入場券本身使用特殊的文件格式口柳,在提交之前被加密簽名。文件格式標識關于提供服務的相關信息以及用戶知道是什么服務的信息有滑。
電子入場券也可以包含一個對卡進行校驗的條碼或其它信息跃闹,以便它能被兌換或使用。
18)Quick Look 框架
QuickLook 框架(QuickLook.framework)提供了一個預覽應用不直接支持的文件內容的接口毛好。
該框架主要打算用于應用從網(wǎng)絡下載文件或處理來自不知道來源的文件的工作望艺。
在得到文件后,你能使用該框架提供的視圖控制器來直接顯示文件的內容肌访。
19)Safari Services 框架
SafariServices 框架 (SafariServices.framework)提供以可編程的方式增加URLs到用戶的Safari的書簽的支持找默。
20)Social Framework(社交框架)
Social框架(Social.framework)提供一個簡單的接口來存取用戶的社交媒體賬號。
該框架取代Twitter框架并增加了其它社交賬號吼驶,包括Facebook惩激、Sina微博以及其它店煞。
應用能使用該框架提交狀態(tài)更新和圖像到用戶賬號。該框架與Accounts框架一起為用戶提供單點登錄并確保存取的用戶賬號是經(jīng)過準許的风钻。
21)Store Kit 框架
StoreKit 框架 (StoreKit.framework)提供在ios應用中購買內容和服務的支持顷蟀,也被稱作應用內購買。
例如骡技,你能使用該功能來允許用戶去鎖另外的應用功能鸣个。或者如果你是一名游戲開發(fā)者布朦,你能使用它來提供另外的游戲級別囤萤。在這兩種情況,StoreKit框架處理事務的收入方面事務喝滞,包括通過用戶的iTunes賬號處理付費請求阁将,給應用提供關于購買的信息膏秫。
Store Kit聚集在事務的金融方面右遭,確保事務正確和安全。你的應用處理事務的其它方面缤削,包括購買接口的呈現(xiàn)和適當內容的下載(去鎖)窘哈。
工作的分工讓你能夠控制購買內容的用戶體驗。由你決定你想呈現(xiàn)給用戶什么樣的購買接口和什么時候那樣做亭敢,你也決定你的應用最好的提交機制滚婉。
22)System Configuration Framework(系統(tǒng)配置框架)
SystemConfiguration 框架(SystemConfiguration.framework)提供可達性接口,你能用它來確定設備的網(wǎng)絡配置帅刀,也能使用該框架確定一個Wi-Fi或蜂窩連接是否在用以及一個特定的主機服務器是否能夠存取让腹。
四? Core OS Layer(核心OS層)
CoreOS層包含其它大多數(shù)技術建在其之上的低級別的功能。雖然應用不直接使用這些技術扣溺,它們被其它框架使用骇窍。在需要顯而易見的處理安全或與外設通訊的情形,你也能使用該層提供的框架锥余。
4.1? Core OS包含的框架:
1)Accelerate 加速框架
Accelerate框架 (Accelerate.framework)包含執(zhí)行數(shù)字信號處理腹纳、線性代數(shù)、圖像處理計算的接口驱犹。
使用該框架的優(yōu)點是它們針對所有的ios設備上存在的硬件配置做了優(yōu)化嘲恍,因此你能寫一次代碼確保在所有設備上有效運行。
2)Core Bluetooth Framework(核心藍牙框架)
CoreBluetooth 框架 (CoreBluetooth.framework)允許開發(fā)者與藍牙低耗電外設(LE)交互雄驹。
使用該框架的Objective-C接口能夠完成如下工作:
1佃牛、掃描藍牙外設,連接和斷開發(fā)現(xiàn)的藍牙外設医舆;
2俘侠、聲明應用的服務桑涎,轉換ios 設備成其它藍牙設備的外設;
3兼贡、 從IOS設備廣播iBeacon信息攻冷;
4、保存你的藍牙連接的狀態(tài)遍希,當應用重新啟動時恢復那些連接等曼;
5、藍牙外設可獲得性變化時獲得通知凿蒜。
3)External Accessory Framework(外部附件框架)
ExternalAccessory 框架(ExternalAccessory.framework)提供與連接到IOS設備的硬件附件通訊的支持禁谦。
附件能通過30-pin連接器或使用藍牙無線與IOS設備進行連接。該框架給你提供了獲得關于每一個可獲得的附件信息和啟動通訊會話的方式废封。然后州泊,你可自由的使用附件支持的命令直接操作附件。
4)Generic Security Services Framework(通用安全服務框架)
GenericSecurity Services 框架 (GSS.framework)給ios應用提供一組標準安全相關的服務漂洋。該框架的基本接口規(guī)定在IETFRFC2743 andRFC4401遥皂。除了提供標準的接口,IOS還包括一些沒有在標準中規(guī)定但被許多應用需要的一些管理證書需要的額外東西刽漂。
5)Security Framework(安全框架)
除了內建的安全功能演训,IOS也提供了一個明確的安全框架(Security.framework),你能用它來保證應用管理的數(shù)據(jù)的安全贝咙。
該框架提供管理證書样悟、公有和私有key和信任策略的接口。支持產(chǎn)生加密安全偽隨機碼庭猩。它也支持在keychain(保存敏感用戶數(shù)據(jù)的安全倉庫)中保存證書和加密key窟她。
公共加密庫提供對稱加密、hash認證編碼(HMACs)蔼水、數(shù)字簽名等額外支持震糖,數(shù)字簽名功能本質上與iOS上沒有的OpenSSL庫兼容。
在你創(chuàng)建的多個應用之間共享keychain是可能的徙缴。共享使它容易在相同的一套應用之間更平滑的協(xié)作试伙。例如,你能使用該功能來共享用戶口令或其它元素于样,否則可能使每個應用都需要提示用戶疏叨。
為了在應用之間共享數(shù)據(jù),必須為每個應用的Xcode工程配置適當?shù)臋嘞蕖?/p>
6)System
System級包含kernel環(huán)境穿剖、驅動以及操作系統(tǒng)級別的unix接口蚤蔓。kernel本身負責操作系統(tǒng)的每一個方面:如虛擬內存管理、線程糊余、文件系統(tǒng)秀又、網(wǎng)絡和互聯(lián)通信单寂。在該層的驅動也提供在可獲得的硬件與系統(tǒng)框架之間的接口。為了安全吐辙,對kernel和驅動的存取被限制到一組有限的系統(tǒng)框架和應用宣决。
IOS提供一組存取許多操作系統(tǒng)低級別功能的接口。應用通過LibSystem庫存取這些功能昏苏。該C based的接口提供如下功能的支持:
1) 多任務(POSIX線程和GCD)
2) 網(wǎng)絡(BSDsockets)
3) 文件系統(tǒng)存取
4) 標準I/O
5) Bonjour和DNS服務
6)? 位置信息
7)? 內存分配
8) 數(shù)學計算
7) 64-Bit Support
IOS原先是為32-bit架構的設備設計的尊沸。自iOS 7,開始支持在64-bit進行編譯贤惯、鏈接和調試洼专。所有的系統(tǒng)庫和框架是支持64位的,意味著它們能在32-bit和64-bit應用中使用孵构。當以64-bit運行時編譯時屁商,應用可能運行的更快,因為在64-bit模式可以獲得額外的處理器資源颈墅。
iOS使用OS X和其它64-bitUNIX系統(tǒng)使用的LP64模式蜡镶,意味著在這些系統(tǒng)移植時不會碰到太頭疼的事。