轉(zhuǎn)載:http://blog.csdn.net/lover870920/article/details/50350101
iOS總體框架介紹和詳盡說明
iOS為應用程序開發(fā)提供了許多可使用的框架胰柑,并構(gòu)成IOS操作系統(tǒng)的層次架構(gòu)福澡,分為四層批钠,從上到下依次為:Cocoa Touch Layer(觸摸UI層)、MediaLayer(媒體層)痘煤、Core Services Layer(核心服務層)、Core OS Layer(核心OS層)割捅。
低層次框架提供IOS的基本服務和技術恩掷,高層次框架建立在低層次框架之上用來提供更加復雜的服務和技術,較高級的框架向較低級的結(jié)構(gòu)提供面向?qū)ο蟮某橄蟆?/p>
在開發(fā)應用時應盡可能使用較高級的框架树灶。如果要開發(fā)的國內(nèi)在高層框架中沒有提供纤怒,你也可以使用較低層框架和技術。
Foundation和 UIKit框架是應用編程用到的兩個主要的框架天通,能夠滿足大多數(shù)應用程序的開發(fā)需求泊窘。
UIKit框架提供的類,用于創(chuàng)建基于觸摸的用戶界面像寒。所有 iOS 應用程序都是基于 UIKit烘豹, 沒有這個框架,就無法交付應用程序诺祸。UIKit提供應用程序的基礎架構(gòu)携悯,用于在屏幕上繪圖、處理事件序臂,以及創(chuàng)建通用用戶界面及其中元素蚌卤。UIKit還通過管理屏幕上顯示的內(nèi)容实束,來組織應用程序。
Foundation框架為所有應用程序提供基本的系統(tǒng)服務逊彭。應用程序以及 UIKit和其他框架咸灿,都是建立在 Foundation 框架的基礎結(jié)構(gòu)之上。 Foundation框架提供許多基本的對象類和數(shù)據(jù)類型侮叮,使其成為應用程序開發(fā)的基礎避矢。它還制定了一些約定(如用于取消分配等任務),使代碼更加一致囊榜,可復用性更好审胸。
整個框架架構(gòu)圖如下:
CocoaTouch Layer包含創(chuàng)建ios應用關鍵的框架卸勺。該層包含的框架定義應用的外觀砂沛,也提供基本的應用基礎和關鍵的技術支持,例如多任務曙求、觸摸輸入碍庵、推送通知和許多其它的高級系統(tǒng)服務。在開發(fā)應用時悟狱,應當首先研究該層的技術和技術看是否能夠滿足需要静浴。
AirDrop允許用戶與附近設備共享圖片挤渐、文檔苹享、urls鏈接以及其它種類的數(shù)據(jù)。
TextKit是處理文本和排版的一個全功能得问、高級別的類集合。使用Text Kit你能在段落白胀、列或者頁上對帶有風格的文本進行布局椭赋;也能在任意區(qū)域(如圖形)周圍布局流動的文本;還能用它來管理多種字體或杠。
開發(fā)應用時應該首先考慮使用Text Kit來進行文本呈現(xiàn)哪怔,而不是Core Text。Text Kit與所有UIKit中的基于文本的控制集成允許應用更容易地創(chuàng)建向抢、編輯认境、顯示和存儲文本。
UIKit dynamics用來為符合UIDynamicItem協(xié)議的UIView對象或其它對象規(guī)定動畫行為叉信。通過在應用的UI中集成真實世界行為和特性進,動畫行為為應用提供了一種增強用戶體驗的方式艘希。
在ios中多任務用來設計來使電池使用時間最大化硅急。
自動布局幫助你使用非常少的代碼來建立動態(tài)接口佳遂。
使用AutoLayout定義如何在用戶接口上布局元素的規(guī)則营袜,這些規(guī)則表達了視圖類之間的關系,如規(guī)定一個按鈕總是處于它的父窗口的左邊緣20個點丑罪。
在Auto Layout中使用的實體是被稱為constraints的Objective-C對象荚板。
串聯(lián)圖 是設計應用用戶接口的推薦方式吩屹。串聯(lián)圖讓你在一個地方就能夠設計全部的用戶接口跪另,方便在一個位置看到所有的視圖和視圖控制器以及理解它們是如何一起工作的。串聯(lián)圖的一個重要的部分是定義segues(segues是從一個視圖控制器到另一個的轉(zhuǎn)換)煤搜。這些轉(zhuǎn)換代表用戶接口之間的交互免绿。你可以使用XCOE來可視的定義這些轉(zhuǎn)換或者通過編程啟動它們。
你能使用一個單串聯(lián)圖文件來存儲所有的應用視圖控制器和視圖宅楞,或者使用多個視圖串聯(lián)圖文件來組織用戶接口针姿。
在應用建立時間袱吆,Xcode讀取串聯(lián)圖文件的內(nèi)容并把它分成多個能獨立加載的離散的片斷厌衙,以便獲得更好的性能。UIKit框架提供了相應的類來從程序中存取一個串聯(lián)圖的內(nèi)容绞绒。
UI狀態(tài)保存能夠使應用表現(xiàn)的一直運行,從而為用戶提供無縫的體驗蓬衡。如果系統(tǒng)遇到內(nèi)存壓力喻杈,系統(tǒng)可能安靜地強制停止一個或多個后臺應用。
當應用從前臺移到后臺時狰晚,該服務能保存應用的視圖和視圖控制器的狀態(tài)筒饰。在下次應用重新啟動時,能夠使用先前保存的狀態(tài)信息來恢復視圖和視圖控制器到它們先前的配置壁晒,使應用表現(xiàn)得好像一直在運行瓷们。
8、Apple Push Notification Service
蘋果的推送通知服務提供了一種提示用戶關于新信息的方式秒咐,即使應用當前不在激活運行狀態(tài)谬晕。使用該服務,你能推送文本通知携取,在應用圖標上增加一個標記或者在任意時間觸發(fā)聲音提示攒钳。這些消息讓用戶知道他們應該打開應用來接收相關信息。自Ios7開始,你甚至能推送無聲的通知來讓應用知道有了新的內(nèi)容可以下載雷滋。
為了使用IOS應用的推送通知不撑,用戶需要做兩部分的工作:
第一文兢、應用必須登記該通知服務以及在通知被提交時處理相關的通知數(shù)據(jù)。
第二焕檬、你必須提供一個服務端的進程來產(chǎn)生通知禽作。服務端的進程可以使用你自己的本地服務器或者使用蘋果的推送通知服務。
本地通知作為推送通知機制的補充旷偿,可以給應用提供一種不依賴外部服務器產(chǎn)生本地通知的方式。
運行在后頭的應用能使用本地通知作為當重要的事件發(fā)生時引起用戶注意的一種方式爆侣。例如萍程,運行在后臺的導航應用能使用本地通知來提示用戶什么時間該轉(zhuǎn)彎了。
應用也能調(diào)度本地通知在將來的時間提交以及使那些通知在應用不運行也能被提交兔仰。
本地通知的一個優(yōu)點是它們與你的應用是獨立的茫负。在一個通知已被調(diào)度,系統(tǒng)管理它的提交乎赴。另外當通知被提交時你的應用甚至不必運行忍法。
手勢識別用來檢測通常類型的手勢榕吼。由于手勢識別使用與系統(tǒng)檢測手勢相同的試探方法饿序,因此手勢識別為應用提供了一個一致的行為。為了使用它羹蚣,你能在你的視圖上附加手勢識別功能和并給它提供一個在手勢出現(xiàn)時要執(zhí)行的方法原探。
手勢識別跟蹤原始的觸摸事件和確定它們什么時候與想要的手勢匹配。
許多系統(tǒng)框架為標準的系統(tǒng)接口定義了視圖控制器咽弦。只要有可能,為了呈現(xiàn)一致的用戶體驗胁出,就應該使用系統(tǒng)提供的視圖控制器而不是創(chuàng)建一個新的型型。
1、Address Book UI Framework(地址本UI框架)
該框架提供一個面向?qū)ο蟮木幊探涌谌S脕盹@示標準的系統(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)對游戲中心的支持,讓用戶能夠在線共享他們的游戲相關的信息埂蕊。
該框架用來在應用中提供廣告條疏唾。當你想要顯示廣告時,廣告條與用戶UI上的標準的視圖進行合并函似。
這些視圖與蘋果的iAd服務一起工作槐脏,自動處理、加載和呈現(xiàn)富媒體廣告以及應答在那些廣告條上的點擊等所有相關的工作撇寞。
MapKit提供與應用的UI組合的一個可滾動的地圖。
除了顯示一個地圖蔑担,你能使用該框架接口來定制地圖的內(nèi)容和外觀牌废,也能使用注解來標記感興趣的點,也能使用定制的內(nèi)容來與地圖內(nèi)容疊置啤握。例如鸟缕,你可以在地圖上來畫一條公交路線,或者使用注解來高亮顯示附近的商店和餐館排抬。
除了顯示地圖懂从,MapKit框架還能與地圖應用以及蘋果的地圖服務器集成來為用戶指引方向。
地圖應用能夠給任意支持方向的應用提供方向的代理蹲蒲。如提供特定類型方向的應用番甩,例如一個顯示地鐵路線的應用,能登記請求接收地圖應用提供的方向悠鞍。
應用也能向蘋果的服務器請求步行或駕駛方向对室,并與他們定制的方向的路徑信息混合來為用戶提供完整的點到點體驗。
6咖祭、Message UI Framework( 消息UI框架)
該框架用來在應用中提供編輯郵件和sms消息的支持隅津。
編輯支持包括一個呈現(xiàn)到你的應用的視圖控制器接口异赫,并能設置這個視圖控制器的一些區(qū)域旗扑,如接收人织阳、主題竣付、郵件主體和郵件想包括的任意附件田巴。
在呈現(xiàn)視圖控制器后超歌,也能為用戶提供一個在發(fā)送郵件之前可以編輯郵件的選項专普。
該框架提供實現(xiàn)圖形和事件驅(qū)動的應用的至關重要的基礎码耐。包括:
1)基本的應用管理和基礎設施,包括應用的主循環(huán)溶其;
2)用戶接口管理骚腥,包括對storyboards和nib文件的支持;
3)一個用來封裝用戶UI內(nèi)容的視圖控制器模式瓶逃;
4)標準v系統(tǒng)視圖和控制對象束铭;
5)提供處理觸摸和運動事件的支持廓块;
6)支持包括與iCloud集成功能的文檔模式;
7)圖形和窗口支持契沫,包括支持外部顯示器带猴;
8)多任務支持;
9)打印支持懈万;
10)定制標準UIKit控制的外觀拴清;
11)支持文本和web內(nèi)容;
12)剪切会通、復制贷掖、粘貼的支持;
13)支持動畫UI渴语;
14)通過url語義和框架接口與系統(tǒng)提供的其它應用集成的能力苹威;
15)對有障礙用戶的可存取性的支持;
16)支持ApplePush Notification服務驾凶;
17)本地通知調(diào)度和提交牙甫;
18)pdf 創(chuàng)建;
19)支持定制像系統(tǒng)鍵盤行為一樣的用戶輸入視圖调违;
20)支持創(chuàng)建與系統(tǒng)鍵盤交互的定制的文本視圖窟哺;
21)支持通過email,Twitter, Facebook和其它服務共享內(nèi)容。
也支持一些設備特定功能的集成技肩,例如
1)內(nèi)建的攝像機且轨;
2)用戶的圖片庫;
3)設備名和模式信息虚婿;
4)電池狀態(tài)信息旋奢;
5)接近傳感器信息;
6)來自附件耳機的遠程控制信息
媒體層包含在應用中實現(xiàn)多媒體體驗的圖形至朗、聲音、視頻技術和框架剧浸。使用這層的技術可以使你容易的建立更加好看和好聽的應用锹引。
高質(zhì)量的圖形是所有應用的重要的組成部分唆香。IOS提供了許多幫助你定制藝術和圖形屏幕的技術嫌变。IOS圖形技術為其提供了廣泛的支持,并可以與UIKit視圖架構(gòu)無縫工作躬它。
你能使用標準的視圖來快速提交高質(zhì)量的接口腾啥,或者使用本層的圖形技術創(chuàng)建你自己的定制視圖來提交一個更加豐富的圖形體驗。
1)UIKit graphics
UIKit定義的繪制圖像和Bézier路徑,以及動畫視圖內(nèi)容的高級別技術碑宴。
UIKit視圖提供快速和有效的方式來呈現(xiàn)圖像和文本內(nèi)容软啼。
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類吭从,以便能夠使用面向?qū)ο蠼涌趤硖峁㎡penGL 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框架讓你存取用戶的圖片、視頻和媒體辆床。你想在應用中集成用戶自己的內(nèi)容時可以使用該框架佳晶。
聲音技術工作于底層硬件之上讼载,為用戶提供更加豐富的聲音體驗。這些體驗包括播放和記錄高質(zhì)量的聲音中跌、處理MIDI內(nèi)容以及使用設備內(nèi)建的聲音 等能力
1)Media Player framework
該框架是一個高級別的框架咨堤, 用來為用戶提供對iTunes庫存取的容易方式,也提供對播放軌跡和播放列表的支持漩符。當你想快速在應用中集成聲音以及不需要控制播放行為時可以使用該框架一喘。
2)AV Foundation
AVFoundation是管理聲音以及視頻播放和記錄的面向?qū)ο蠼涌凇T谟涗浡曇艉拖雽β曇舨シ胚^程有更好的控制時可以使用該框架。
3)OpenAL
OpenAL是一個提供位置音效的跨平臺的工業(yè)標準技術和接口凸克。游戲開發(fā)者經(jīng)常使用該技術來提供高質(zhì)量的聲音议蟆。
4)Core Audio
Core Audio是一組簡單和智能的接口來記錄和播放聲音以及MIDI內(nèi)容。在需要對聲音有更好控制時使用該框架萎战。
視頻技術提供管理應用中的靜態(tài)視頻內(nèi)容或者播放來自Internet的視頻流的支持。對于帶有適當?shù)挠涗浻布脑O備蚂维,該框架還能夠記錄視頻以及與應用進行集成戳粒。
1)UIImagePickerController
UIImagePickerController是一個選擇用戶媒體文件的UIKit視圖控制器。
2)Media Player
MediaPlayer框架提供一組呈現(xiàn)視頻內(nèi)容的簡單易用的接口虫啥,該框架支持全屏和小窗口視頻播放蔚约,也為用戶提供可選的播放控制。
3)AVFoundation
AVFoundation提供先進的視頻播放和記錄能力涂籽。
在需要對視頻呈現(xiàn)和記錄有更多的控制時使用該框架苹祟,例如在實時應用中分層顯示實時視頻和應用提供的其它內(nèi)容。
4)CoreMedia
CoreMedia框架為操作媒體定義低級別的數(shù)據(jù)類型和接口评雌。
當你需要對視頻內(nèi)容有無比的控制時可以使用該框架树枫。
AirPlay讓應用串流聲音和視頻內(nèi)容到Apple TV或者串流聲音內(nèi)容到第三方揚聲器和接收器柳骄。
AirPlay內(nèi)建于許多框架团赏,包括UIKit、Media Player耐薯、AVFoundation舔清、Core Audio。因此在大多數(shù)情況你不需要為了支持它做任何事曲初。在使用那些框架時,當播放內(nèi)容時自動獲得AirPlay支持颁独。當用戶選擇使用AirPlay播放內(nèi)容時系統(tǒng)自動進行路由寨辩。
MediaLayer提供如下框架和服務耍攘。
AssetsLibrary 框架(AssetsLibrary.framework)提供對用戶設備上圖片應用管理的圖片和視頻的存取。
使用該框架來存取用戶保存的圖片相冊或?qū)氲皆O備的任意相冊中的圖片,你也能保存新的圖片和視頻到用戶的圖片相冊。
AVFoundation 框架 (AVFoundation.framework)提供一組播放项戴、記錄和管理聲音和視頻內(nèi)容的Objective-C類。當你想在應用的ui接口無縫集成媒體能力時使用該框架槐臀。你也能使用它來進行更先進的媒體處理,例如同時播放多個聲音或者控制播放和記錄過程的多個方面敬扛。
該框架提供的服務包括:
1)聲音會話管理晰洒,包括對系統(tǒng)聲明你的應用聲音能力;
2)對應用媒體資源的管理;
3)對編輯媒體內(nèi)容的支持;
4)捕捉聲音和視頻的能力打掘;
5)播放聲音和視頻的能力尊蚁;
6)軌跡管理;
7)媒體元數(shù)據(jù)的管理侣夷;
8)立體拍攝横朋;
9)聲音之間的精確同步;
10)提供一個確定聲音文件細節(jié)內(nèi)容的Objective-C接口百拓,例如數(shù)據(jù)格式琴锭,采樣率,通道數(shù)耐版;
11) 通過AirPlay串流內(nèi)容祠够。
Core Audio是一個對聲音處理提供本地支持的框架家族粪牲。這些框架支持聲音的產(chǎn)生古瓤、記錄、混合和回放腺阳。你也能使用這些接口處理MIDI內(nèi)容以及串流聲音和MIDI內(nèi)容到其它應用落君。
Core Audio框架包括如下框架:
1)CoreAudio.framework
定義Core Audio框架使用的所有數(shù)據(jù)類型。
2)AudioToolbox.framework
提供聲音文件和聲音流的播放和記錄服務亭引。也提供管理聲音文件绎速,播放系統(tǒng)警告聲音,在某些設備上觸發(fā)震動的支持焙蚓。
3)AudioUnit.framework
提供使用內(nèi)建聲音單元纹冤。也提供使你的應用的聲音內(nèi)容作為對其它應用可視的聲音組件的支持洒宝。
4)CoreMIDI.framework
提供與MIDI設備通訊的標準方式,包括硬件鍵盤和合成器萌京。你使用這個框架來發(fā)送和接收MIDI消息以及與通過dock連接器或網(wǎng)絡連接到IOS設備的MIDI外設交互雁歌。
MediaToolbox.framework 提供對聲音tap接口的存取。
CoreGraphics.framework包含Quartz 2D繪制api靠瞎。
Quartz是一個原先用在OS X的先進的、向量繪制引擎求妹。Quartz支持路徑繪制乏盐,抗鋸齒呈現(xiàn),剃度制恍,圖像父能,顏色,坐標空間轉(zhuǎn)換以及pdf 內(nèi)容創(chuàng)建吧趣、顯示和分析等功能法竞。
雖然這個api是C-based接口,但它使用了面向?qū)ο蟪橄髞肀憩F(xiàn)基本的繪制對象强挫,因此使它容易存儲和重用圖形內(nèi)容岔霸。
CoreImage 框架(CoreImage.framework)提供一組強大的內(nèi)建過濾器來操作視頻和靜態(tài)圖像俯渤。
你能在觸摸彈起呆细、糾正圖片以及面部和特征檢測等許多方面使用這些內(nèi)建的過濾器。這些過濾器的先進特點是它們操作在非破壞方式八匠,即原先的圖像不被改變絮爷。
這些過濾器針對底層硬件進行了優(yōu)化,因此它們是快速和有效的梨树。
CoreText 框架 (CoreText.framework)提供一個對文本進行布局和字體處理的簡單的、高性能的C-based接口抡四。
該框架用在不使用TextKit但仍想獲得在字處理應用中發(fā)現(xiàn)的先進文本處理能力柜蜈。
該框架提供了一個智能的文本布局引擎,包括在其它內(nèi)容周圍環(huán)繞文本的能力指巡,它也支持使用多種字體和呈現(xiàn)屬性的先進的文本風格淑履。
CoreVideo 框架 (CoreVideo.framework)為Core Media框架提供緩沖和緩沖池支持藻雪。多數(shù)應用從不直接使用該框架秘噪。
GameController 框架 (GameController.framework)讓你在應用中發(fā)現(xiàn)和配置針對iPhone/iPod/iPad設備的游戲控制器勉耀。
游戲控制器可以是物理連接到iOS設備或者是通過藍牙無線連接指煎。GameController框架當控制器可獲得時通知你的應用讓應用可以規(guī)定哪個控制器輸入與你的應用相關蹋偏。
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類提供在你的應用中使用圖像轉(zhuǎn)換和加載線程,允許應用自動加載紋理圖像到應用的上下文京郑。
能夠異步或同步加載紋理宅广。當異步加載紋理時,應用應提供一個完成處理塊些举,該處理塊在紋理加載進應用上下文時被調(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ì)模式,簡化了移植一個應用從OpenGL ES 1.1到OpenGL ES最后版本的努力叼丑。
ImageI/O 框架(ImageIO.framework)提供輸入和輸出圖像數(shù)據(jù)和圖像元數(shù)據(jù)的接口。
該框架利用CoreGraphics數(shù)據(jù)類型和功能鸠信,并支持在ios 上所有的可獲得的標準的圖像類型纵寝。你能使用這個框架存取Exif和IPTC元數(shù)據(jù)屬性。
MediaAccessibility 框架 (MediaAccessibility.framework)管理媒體文件中closed-caption內(nèi)容的呈現(xiàn)爽茴。
該框架與新的設置配合工作可以讓用戶決定是否允許closed-caption顯示。
MediaPlayer 框架(MediaPlayer.framework)提供應用中播放聲音和視頻的高級別支持室奏。
能夠使用該框架做如下工作:
1)播放視頻到用戶屏幕或通過AirPlay到另外的設備屏幕。能夠全屏幕播放視頻或以可改變視圖大小的方式播放劲装。
2)存取用戶的iTunes音樂庫胧沫。能夠播放音樂軌跡和播放列表、搜索音樂酱畅、給用戶提供一個媒體picker呈現(xiàn)接口琳袄。
3)配置和管理電影的回放。
4)在鎖定屏幕和app 切換窗口上顯示NowPlaying信息纺酸。當內(nèi)容通過AirPlay提交時還能顯示到AppleTV上窖逗。
5)檢測視頻通過AirPlay被串流的時間。
OpenAudio Library (OpenAL)接口是用來在應用中提供位置音效的跨平臺的標準碎紊。能夠使用該接口在游戲和其它需要位置音效輸出的程序中實現(xiàn)高性能佑附、高質(zhì)量的聲音戚丸。
因為OpenAL是跨平臺的標準鼓鲁,在iOS使用OpenAL編寫的代碼能夠容易地移植到許多其它平臺。
OpenGLES 框架 (OpenGLES.framework)提供繪制2d和3d內(nèi)容的工具秃嗜, 它是一個C-based的框架权均。
該框架以最接近設備硬件的方式為全屏沉浸式應用例如游戲提供細粒度的圖形控制和高的幀率。你能夠與EAGL配合使用這個框架锅锨,為OpenGL ES 繪制調(diào)用和UIKit的本地窗口對象之間提供接口叽赊。
該框架支持OpenGLES 1.1, 2.0, 3.0規(guī)范。2.0規(guī)范增加了片段和頂點著色的支持必搞,3.0規(guī)范增加了更多的功能必指,包括多個呈現(xiàn)目標和變換反饋。
QuartzCore 框架(QuartzCore.framework)包含Core Animation接口塔橡。Core Animation是一個先進的復合技術,使用它能容易創(chuàng)建快和有效的view-based的動畫霜第。 復合引擎利用底層硬件來有效的實時操作視圖內(nèi)容葛家。只需規(guī)定動畫的起始點,CoreAnimation做剩下的工作庶诡。因為Core Animation內(nèi)嵌在UIView架構(gòu)的底層惦银,因此它總是可用的。
SpriteKit 框架 (SpriteKit.framework)框架為2d和2.5d游戲提供硬件加速的動畫系統(tǒng)扯俱。
SpriteKit提供大多數(shù)游戲需要的基礎,包括一個圖形引擎和動畫系統(tǒng)喇澡,聲音播放支持迅栅,一個物理仿真引擎。 使用SpriteKit不需你自己創(chuàng)建這些事情晴玖,使你聚焦在內(nèi)容設計和內(nèi)容的高級別的交互上读存。
在Sprite Kit應用中內(nèi)容組織為場景。一個場景包括紋理對象呕屎,視頻让簿,路徑圖形,核心圖像過濾器和其它的特效秀睛。SpriteKit利用這些對象尔当,確定這些對象到屏幕上的最有效的方式。當在場景中到了動畫內(nèi)容的時刻蹂安,你能使用SpriteKit來顯式規(guī)定你想執(zhí)行的行動或使用物理仿真引擎來為那些對象定義物理行為(例如重力椭迎、引力或排拆力)锐帜。
除了SpriteKit框架,也有其它Xcode工具來創(chuàng)建顆粒發(fā)射效果和紋理圖畜号。你能使用Xcode工具來管理應用資源和快速地更新Sprite Kit場景缴阎。
CoreServices Layer包含應用需要的基礎的系統(tǒng)服務简软。這些服務中的核心是CoreFoundation和Foundation框架蛮拔,定義了所有應用使用的基本類型。該層也包含獨立的技術來支持一些其它功能替饿, 例如位置语泽、iCloud、社交媒體和網(wǎng)絡视卢。
1、Peer-to-Peer Services(點到點服務)
這個Multipeer Connectivity框架提供通過藍牙進行p2p連接的能力廊驼。你能使用p2p連接來啟動與附近設備的通訊會話据过。雖然p2p連接主要用在游戲中,你也能在其它類型的應用中使用這個功能妒挎。
iCloud存儲讓應用把用戶文檔和數(shù)據(jù)寫到一個中心位置,用戶然后能從他們的計算機和ios 設備存取這些數(shù)據(jù)酝掩。使用iCloud可以使用戶文檔無所不在鳞芙,意味著用戶能從任何設備閱讀或編輯那些文檔,而不需要顯式的同步或文件傳輸期虾。存儲文檔到用戶的iCloud賬戶也為用戶提供了一層安全原朝。即使用戶的設備丟失,那些設備上的文檔如果已經(jīng)保存到iCloud就不會丟失镶苞。
應用能以兩種方式使用 iCloud存儲喳坠,每一種有不同的使用意圖:
1)iCloud文檔存儲。
可以使用這個功能在用戶的iCloud賬戶存儲用戶文檔和數(shù)據(jù)茂蚓。大多數(shù)應用使用iCloud文檔存儲來共享來自用戶賬戶的文檔壕鹉。使用iCloud文檔存儲用戶關心的是文檔能否能夠在設備之間共享以及他們是否能夠從一個給定設備查看和管理那些文檔。
2)iCloud鍵值存儲聋涨。
使用這個功能在應用之間共享數(shù)據(jù)晾浴。iCloud鍵值存儲是應用與應用的其它實例共享小量數(shù)據(jù)(幾十k字節(jié))的方式,應用應當用它存儲非緊急的應用數(shù)據(jù)牍白,例如設置脊凰。
3、Automatic Reference Counting(自動引用計數(shù))
AutomaticReference Counting(ARC)是一個編譯級別的功能淹朋,用它來簡化Objective-C對象生命周期過程的管理笙各,以此代替用戶必須記住什么時候應該保持和釋放對象钉答。ARC評估對象的生命周期需求和自動在編譯時間插入適當?shù)姆椒ㄕ{(diào)用。
ARC用來代替ios 的早期版本中存在的傳統(tǒng)的管理內(nèi)存的編程模式杈抢。新創(chuàng)建的工程自動使用ARC数尿。XCODE也提供了移植工具幫助你轉(zhuǎn)換遺留的工程來使用ARC.
BlockObjects是一個能夠與你的C或Objective-C代碼集成的C語言的構(gòu)造塊惶楼。一個blockobject本質(zhì)上是一個異步功能和相關的數(shù)據(jù)右蹦。在其它語言中有時也被稱做closure或lambda。Blocks尤其用作回調(diào)或放在你需要一種容易的組合執(zhí)行代碼和相關數(shù)據(jù)方式的地方歼捐。
在ios何陆,通常在下面的場景使用Blocks:
1)作為代理或代理方法的代替;
2)作為回調(diào)功能的代替豹储;
3)為某個一次性操作實現(xiàn)其完成處理函數(shù)贷盲;
4)在一個集合中的所有項上執(zhí)行一個任務;
5)與提交隊列一起執(zhí)行異步任務剥扣。
5巩剖、Data Protection(數(shù)據(jù)保護)
DataProtection允許應用利用設備上已有的內(nèi)建的加密方法來使用用戶的敏感數(shù)據(jù)。
當應用指定一個特定的文件被保護時钠怯,系統(tǒng)在磁盤上以加密格式存儲該文件佳魔。當設備鎖定時,該文件的內(nèi)容不能被應用和任何潛在的侵入者存取晦炊【舷剩可是當設備由用戶解鎖時,一個解密key被創(chuàng)建允許你的應用存取那個文件断国。
用戶也可以使用其它級別的數(shù)據(jù)保護機制贤姆。實現(xiàn)數(shù)據(jù)保護需要你考慮如何創(chuàng)建和管理你想保護的數(shù)據(jù)。應用必須設計在數(shù)據(jù)的創(chuàng)建時間加密數(shù)據(jù)并思,以及當用戶鎖定或解鎖設備時為存取條件改變做好準備庐氮。
6、File-Sharing Support(文件共享支持)
File-SharingSupport使用戶數(shù)據(jù)文件在iTunes 9.1和以后上可被其它應用獲得宋彼。一個應用聲明支持文件共享使它的/Documents目錄下的內(nèi)容對其它用戶可獲得弄砍。用戶然后當需要時能夠把文件從iTunes移進或移出應用的Documents目錄。這個特征不允許應用與相同設備上的其它應用共享應用输涕,這需要粘貼板或一個文檔交互控制器對象音婶。
應用為了允許文件共享支持,需要做如下工作:
1)在應用的Info.plist文件中增加UIFileSharingEnabled鍵莱坎,并設置其值為YES衣式。
2)在你的應用的Documents中放你想共享的文件;
3)當設備插進用戶的計算機時,iTunes在選中設備的Apps標簽下顯式一個文件共享節(jié)碴卧;
4)用戶然后能夠增加文件到設備的文檔目錄或移動文件到桌面弱卡。
支持文件共享的應用應該能夠識別文件什么時候增加到其Documents目錄和做出適當?shù)膽稹@鐟每梢允谷我庑挛募膬?nèi)容可以從它的接口獲得住册。也應該從不把Documents目錄的文件列表呈現(xiàn)給用戶來請求用戶決定對那些文件做什么婶博。
GrandCentral Dispatch(GCD)是一個BSD技術荧飞,應用可以用來管理其任務的執(zhí)行凡人。
GCD與高優(yōu)化的核組合成一個異步編程模式,來提供方便和更有效的對線程的替代叹阔。GCD也為許多低級別的任務提供一個方便的選擇挠轴,例如讀和寫文件描述符,實現(xiàn)定時器和監(jiān)視信號和處理事件耳幢。
8岸晦、In-App Purchase(應用內(nèi)購買)
In-App Purchase 提供在應用中銷售應用特定的內(nèi)容和服務以及來自iTunes的內(nèi)容的能力。
這個功能使用StoreKit框架實現(xiàn)睛藻,并提供使用用戶的iTunes賬號來處理金融方面的事務需要的基礎委煤。應用處理全部用戶體驗和供購買的內(nèi)容及可獲得服務的呈現(xiàn)。作為可下載的內(nèi)容修档,你能把可下載的內(nèi)容放到你自己的服務器或使用蘋果的服務器。
SQLite庫讓你在你的應用中嵌入一個輕量級的sql數(shù)據(jù)庫吱窝,而不需要運行一個分離的遠程數(shù)據(jù)庫服務進程。從你的應用迫靖,你能創(chuàng)建本地數(shù)據(jù)庫文件院峡,管理數(shù)據(jù)庫表和表中的數(shù)據(jù)記錄。
SQLite庫為通用功能使用設計系宜,但已經(jīng)被優(yōu)化來提供對數(shù)據(jù)記錄更快速的存取照激。
Foundation框架提供一個NSXMLParser類用來從一個xml文檔中引出元素盹牧。
操作xml內(nèi)容的額外的支持由libxml2庫提供支持俩垃。libxml2開源庫讓你快速地分析或?qū)懭我獾膞ml數(shù)據(jù)和轉(zhuǎn)換xml內(nèi)容到html.
核心服務框架(Core Services Frameworks)
Core Services Frameworks包含下面的一些框架。
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)提供存取應用用于廣告功能的一個標識咧欣。
該框架也提供一個指示用戶是否選擇廣告跟蹤的標志浅缸。應用在試圖存取廣告標識前需要度和判斷這個標志。
CFNetwork框架 (CFNetwork.framework)是高性能的使用面向?qū)ο髮W(wǎng)絡協(xié)議進行抽象的一組C-based接口衩椒。這些抽象提供對協(xié)議棧細節(jié)的控制,使它容易使用低級別的構(gòu)造例如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哨鸭。
CoreData 框架 (CoreData.framework)框架是管理MVC應用中的數(shù)據(jù)模式的一種技術。
CoreData框架打算在數(shù)據(jù)模式是高結(jié)構(gòu)化的應用中使用像鸡。代替編程定義數(shù)據(jù)結(jié)構(gòu)活鹰,在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ù)表視圖結(jié)果的 NSFetchedResultsController類;
3)對基本的文本編輯之外的undo/redo的管理桑涎;
4)支持屬性值的校驗彬向;
5)支持傳播改變確保對象之間的關系保持一致性;
6)支持分組攻冷、過濾和在內(nèi)存中優(yōu)化數(shù)據(jù)娃胆。
如果你開始開發(fā)一個新應用或計劃對已有應用進行大的更新,應該考慮使用CoreData等曼。
CoreFoundation 框架 (CoreFoundation.framework)是一組C-based接口,為ios應用提供基本的數(shù)據(jù)管理和服務功能禁谦。該框架包括如下支持:
1)集合數(shù)據(jù)類型(數(shù)組胁黑、集合等等);
2)應用打包Bundles州泊;
3)字符串管理丧蘸;
4)日期和時間管理
5)原始數(shù)據(jù)塊管理
6)Preferences管理;
7)URL和流操作遥皂;
8)線程
9)端口和socket通訊触趴。
CoreFoundation框架與Foundation框架緊密相關,為相同的基本功能提供Objective-C接口渴肉。當你需要混合使用Foundation對象和Core Foundation類型時,你能利用兩個框架之間存在的“toll-freebridging”爽冕。toll-free bridging”意味著你能可交換地在兩個框架的方法和功能中使用一些CoreFoundation和Foundation類型仇祭。這個支持對許多數(shù)據(jù)類型可用,包括集合和字符串數(shù)據(jù)類型颈畸。每個框架的類和類型描述聲明一個對象是否是toll-freebridged以及在是的情況下來標識它連接到什么對象乌奇。
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ù)的質(zhì)量卦溢,例如開車時。
8秀又、Core Media Framework(核心媒體框架)
CoreMedia 框架(CoreMedia.framework)提供由AV Foundation框架使用的低級別的媒體類型单寂。大多數(shù)應用從不需要使用該框架,但少數(shù)需要更精確控制音視頻內(nèi)容創(chuàng)建和呈現(xiàn)的開發(fā)者可以使用它吐辙。
9宣决、Core Motion Framework (核心運動框架)
CoreMotion 框架 (CoreMotion.framework)提供一組接口來存取設備上可獲得的運動數(shù)據(jù)。
該框架支持使用一組新的block-based接口來存取原始和加工過的加速度計數(shù)據(jù)袱讹。對于帶有陀螺儀的設備疲扎,你也能獲得原始的陀螺儀數(shù)據(jù)和加工過的反應設備方向和旋轉(zhuǎn)速度的數(shù)據(jù)。
你能在游戲或其它使用運動作為輸入或作為增強用戶體驗的方式的應用中使用加速度計和陀螺儀兩種數(shù)據(jù)捷雕。對于帶有計步硬件的設備椒丧,你能存取它的數(shù)據(jù)來跟蹤健康相關的運動。
10救巷、Core Telephony Framework(核心電話框架)
CoreTelephony 框架 (CoreTelephony.framework)提供與蜂窩電話的通話相關的信息交互的接口壶熏。
可以使用該框架來獲得用戶的蜂窩服務提供者的信息。對于對蜂窩call事件感興趣的應用例如VoIP應用也能在那些事件出現(xiàn)時被通知浦译。
EventKit 框架 (EventKit.framework)提供存取用戶設備上的月歷事件的接口。能夠使用該框架來做如下事情:
1) 獲得用戶月歷上存在的事件和提示精盅;
2)增加事件到用戶月歷帽哑;
3)為用戶創(chuàng)建提示和使它們出現(xiàn)在提示應用中;
4)為月歷事件配置提示信號,包括設置提示信號應該什么時候觸發(fā)的規(guī)則。
重要提示:存取用戶的月歷和提示數(shù)據(jù)需要用戶的明確許可杭棵。應用因此必須準備好用戶拒絕的情形,也鼓勵應用在其Info.plist文件中提供一個描述需要存取原因的鍵屡谐。
Foundation框架 (Foundation.framework)提供Core Foundation框架提供的許多功能的Objective-C封裝蝌数。該框架提供如下功能的支持:
集合數(shù)據(jù)類型(數(shù)組愕掏、集合等等);
應用打包Bundles顶伞;
字符串管理饵撑;
日期和時間管理
原始數(shù)據(jù)塊管理
Preferences管理剑梳;
URL和流操作;
線程和運行環(huán)肄梨;
Bonjour阻荒;
通訊端口管理;
國際化众羡;
規(guī)則表達式匹配侨赡;
Cache支持。
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類來可編程的查找和管理對方設備料睛。
Newsstand應用為用戶提供了一個閱讀雜志和報紙的中心位置摇邦。想通過Newsstand提供雜志和報紙內(nèi)容的出版商能夠使用NewsstandKit 框架(NewsstandKit.framework)創(chuàng)建它們自己的iOS應用恤煞,讓用戶啟動新雜志和報紙新聞的后臺下載。在啟動下載后施籍,系統(tǒng)處理下載操作和當內(nèi)容可獲得時通知應用居扒。
Passbook應用為用戶提供了一個存儲訂貨單丑慎、登機卡苔货、入場券和商業(yè)折扣卡的位置。代替物理攜帶這些東西立哑,用戶現(xiàn)在能在IOS設備上存儲它們,并和過去一樣的方式使用姻灶。
Pass Kit 框架 (PassKit.framework)提供把這些功能集成到你的應用的Objective-C接口铛绰。
你能與web接口和文件格式信息組合使用該框架來創(chuàng)建和管理你們公司提供的電子入場券。
電子入場券由你們公司的web service創(chuàng)建并通過email产喉、Safari或定制的應用提交到用戶的設備捂掰。電子入場券本身使用特殊的文件格式敢会,在提交之前被加密簽名。文件格式標識關于提供服務的相關信息以及用戶知道是什么服務的信息这嚣。
電子入場券也可以包含一個對卡進行校驗的條碼或其它信息鸥昏,以便它能被兌換或使用。
QuickLook 框架(QuickLook.framework)提供了一個預覽應用不直接支持的文件內(nèi)容的接口吏垮。
該框架主要打算用于應用從網(wǎng)絡下載文件或處理來自不知道來源的文件的工作。
在得到文件后罐旗,你能使用該框架提供的視圖控制器來直接顯示文件的內(nèi)容膳汪。
SafariServices 框架 (SafariServices.framework)提供以可編程的方式增加URLs到用戶的Safari的書簽的支持九秀。
Social框架(Social.framework)提供一個簡單的接口來存取用戶的社交媒體賬號。
該框架取代Twitter框架并增加了其它社交賬號鼓蜒,包括Facebook痹换、Sina微博以及其它。
應用能使用該框架提交狀態(tài)更新和圖像到用戶賬號都弹。該框架與Accounts框架一起為用戶提供單點登錄并確保存取的用戶賬號是經(jīng)過準許的娇豫。
StoreKit 框架 (StoreKit.framework)提供在ios應用中購買內(nèi)容和服務的支持缔杉,也被稱作應用內(nèi)購買锤躁。
例如,你能使用該功能來允許用戶去鎖另外的應用功能或详∠敌撸或者如果你是一名游戲開發(fā)者,你能使用它來提供另外的游戲級別霸琴。在這兩種情況椒振,StoreKit框架處理事務的收入方面事務,包括通過用戶的iTunes賬號處理付費請求梧乘,給應用提供關于購買的信息澎迎。
Store Kit聚集在事務的金融方面,確保事務正確和安全选调。你的應用處理事務的其它方面夹供,包括購買接口的呈現(xiàn)和適當內(nèi)容的下載(去鎖)。
工作的分工讓你能夠控制購買內(nèi)容的用戶體驗仁堪。由你決定你想呈現(xiàn)給用戶什么樣的購買接口和什么時候那樣做哮洽,你也決定你的應用最好的提交機制。
22弦聂、System Configuration Framework(系統(tǒng)配置框架)
SystemConfiguration 框架(SystemConfiguration.framework)提供可達性接口鸟辅,你能用它來確定設備的網(wǎng)絡配置氛什,也能使用該框架確定一個Wi-Fi或蜂窩連接是否在用以及一個特定的主機服務器是否能夠存取。
CoreOS層包含其它大多數(shù)技術建在其之上的低級別的功能枪眉。雖然應用不直接使用這些技術,它們被其它框架使用再层。在需要顯而易見的處理安全或與外設通訊的情形贸铜,你也能使用該層提供的框架。
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)聲明應用的服務骂蓖,轉(zhuǎn)換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ī)定但被許多應用需要的一些管理證書需要的額外東西。
除了內(nèi)建的安全功能艇潭,IOS也提供了一個明確的安全框架(Security.framework),你能用它來保證應用管理的數(shù)據(jù)的安全。
該框架提供管理證書暴区、公有和私有key和信任策略的接口。支持產(chǎn)生加密安全偽隨機碼辛臊。它也支持在keychain(保存敏感用戶數(shù)據(jù)的安全倉庫)中保存證書和加密key仙粱。
公共加密庫提供對稱加密、hash認證編碼(HMACs)彻舰、數(shù)字簽名等額外支持伐割,數(shù)字簽名功能本質(zhì)上與iOS上沒有的OpenSSL庫兼容。
在你創(chuàng)建的多個應用之間共享keychain是可能的刃唤。共享使它容易在相同的一套應用之間更平滑的協(xié)作隔心。例如,你能使用該功能來共享用戶口令或其它元素尚胞,否則可能使每個應用都需要提示用戶硬霍。
為了在應用之間共享數(shù)據(jù),必須為每個應用的Xcode工程配置適當?shù)臋?quán)限笼裳。
System級包含kernel環(huán)境、驅(qū)動以及操作系統(tǒng)級別的unix接口躬柬。kernel本身負責操作系統(tǒng)的每一個方面:如虛擬內(nèi)存管理拜轨、線程、文件系統(tǒng)允青、網(wǎng)絡和互聯(lián)通信橄碾。在該層的驅(qū)動也提供在可獲得的硬件與系統(tǒng)框架之間的接口。為了安全颠锉,對kernel和驅(qū)動的存取被限制到一組有限的系統(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) 內(nèi)存分配
8) 數(shù)學計算
IOS原先是為32-bit架構(gòu)的設備設計的。自iOS 7眉枕,開始支持在64-bit進行編譯恶复、鏈接和調(diào)試。所有的系統(tǒng)庫和框架是支持64位的速挑,意味著它們能在32-bit和64-bit應用中使用谤牡。當以64-bit運行時編譯時,應用可能運行的更快姥宝,因為在64-bit模式可以獲得額外的處理器資源翅萤。
iOS使用OS X和其它64-bitUNIX系統(tǒng)使用的LP64模式,意味著在這些系統(tǒng)移植時不會碰到太頭疼的事腊满。
相關內(nèi)容參考:http://blog.csdn.net/GooHong/article/details/28911301
一下圖片不知道從哪兒弄的了~~