iOS框架和服務(wù)

轉(zhuǎn)自:iOS框架和服務(wù)

框架簡介

一、什么是系統(tǒng)框架

在iOS中框架是一個目錄验游,包含了共享資源庫幢炸,用于訪問該資源庫中儲存的代碼的頭文件泄隔,以及圖像、聲音文件等其他資源宛徊。共享資源庫定義應(yīng)用程序可以調(diào)用的函數(shù)和方法佛嬉。

二逻澳、系統(tǒng)框架四層結(jié)構(gòu)

iOS為應(yīng)用程序開發(fā)提供了許多可使用的框架,并構(gòu)成iOS操作系統(tǒng)的層次架構(gòu)暖呕,分為四層斜做,從上到下依次為:Cocoa Touch Layer(觸摸UI層)、MediaLayer(媒體層)湾揽、Core Services Layer(核心服務(wù)層)瓤逼、Core OS Layer(核心OS層)。

三库物、高低層系統(tǒng)框架關(guān)系

低層次框架提供IOS的基本服務(wù)和技術(shù)霸旗,高層次框架建立在低層次框架之上用來提供更加復(fù)雜的服務(wù)和技術(shù),較高級的框架向較低級的結(jié)構(gòu)提供面向?qū)ο蟮某橄蟆?br> 在開發(fā)應(yīng)用時應(yīng)盡可能使用較高級的框架戚揭。如果要開發(fā)的國內(nèi)在高層框架中沒有提供诱告,你也可以使用較低層框架和技術(shù)。

四民晒、兩個常用的 framework

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ù)用性更好饺蔑。

五、系統(tǒng)框架層

整個框架架構(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)格的文本進(jìn)行布局;也能在任意區(qū)域(如圖形)周圍布局流動的文本惩坑;還能用它來管理多種字體掉盅。

開發(fā)應(yīng)用時應(yīng)該首先考慮使用Text Kit來進(jìn)行文本呈現(xiàn),而不是Core Text以舒。Text Kit與所有UIKit中的基于文本的控制集成允許應(yīng)用更容易地創(chuàng)建趾痘、編輯、顯示和存儲文本蔓钟。

3)永票、UIKit Dynamics

UIKit dynamics用來為符合UIDynamicItem協(xié)議的UIView對象或其它對象規(guī)定動畫行為。通過在應(yīng)用的UI中集成真實世界行為和特性進(jìn)滥沫,動畫行為為應(yīng)用提供了一種增強用戶體驗的方式侣集。

4)、Multitasking

在ios中多任務(wù)用來設(shè)計來使電池使用時間最大化兰绣。

5)世分、Auto Layout

自動布局幫助你使用非常少的代碼來建立動態(tài)接口。
使用AutoLayout定義如何在用戶接口上布局元素的規(guī)則缀辩,這些規(guī)則表達(dá)了視圖類之間的關(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ù)端的進(jìn)程來產(chǎn)生通知钱反。
服務(wù)端的進(jìn)程可以使用你自己的本地服務(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)的視圖進(jì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明未、來自附件耳機的遠(yuǎn)程控制信息

二槽华、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ù)進(jìn)行動畫周崭,并為用戶提供反饋偎血,促進(jìn)用戶交互答朋。

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使用硬件加速接口來處理先進(jìn)的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)先進(jìn)的文本操作,Text Kit提供與應(yīng)用視圖的無縫集成坷备。
CoreText是處理先進(jìn)排面和布局的低級別的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ū)ο蠼涌凇?br> 在記錄聲音和想對聲音播放過程有更好的控制時可以使用該框架。
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)用進(jìn)行集成。
1).UIImagePickerController
UIImagePickerController是一個選擇用戶媒體文件的UIKit視圖控制器慎陵。
2)眼虱、Media Player
MediaPlayer框架提供一組呈現(xiàn)視頻內(nèi)容的簡單易用的接口,該框架支持全屏和小窗口視頻播放席纽,也為用戶提供可選的播放控制捏悬。
3)、AVFoundation
AVFoundation提供先進(jìn)的視頻播放和記錄能力润梯。
在需要對視頻呈現(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)自動進(jìn)行路由。

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接口無縫集成媒體能力時使用該框架。
你也能使用它來進(jìn)行更先進(jìn)的媒體處理溯泣,例如同時播放多個聲音或者控制播放和記錄過程的多個方面虐秋。
該框架提供的服務(wù)包括:
1)聲音會話管理,包括對系統(tǒng)聲明你的應(yīng)用聲音能力垃沦; 2)對應(yīng)用媒體資源的管理客给; 3)對編輯媒體內(nèi)容的支持; 4)捕捉聲音和視頻的能力肢簿; 5)播放聲音和視頻的能力靶剑; 6)軌跡管理; 7)媒體元數(shù)據(jù)的管理池充; 8)立體拍攝桩引; 9)聲音之間的精確同步; 10)提供一個確定聲音文件細(xì)節(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的先進(jìn)的享潜、向量繪制引擎困鸥。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)建的過濾器胯盯。這些過濾器的先進(jìn)特點是它們操作在非破壞方式供鸠,即原先的圖像不被改變。
這些過濾器針對底層硬件進(jìn)行了優(yōu)化陨闹,因此它們是快速和有效的楞捂。
2.2.6薄坏、Core Text 框架
CoreText 框架 (CoreText.framework)提供一個對文本進(jìn)行布局和字體處理的簡單的、高性能的C-based接口寨闹。
該框架用在不使用TextKit但仍想獲得在字處理應(yīng)用中發(fā)現(xiàn)的先進(jìn)文本處理能力胶坠。
該框架提供了一個智能的文本布局引擎,包括在其它內(nèi)容周圍環(huán)繞文本的能力繁堡,它也支持使用多種字體和呈現(xiàn)屬性的先進(jì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è)備或者是通過藍(lán)牙無線連接罩润。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)提供一個完成處理塊丢胚,該處理塊在紋理加載進(jìn)應(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)用例如游戲提供細(xì)粒度的圖形控制和高的幀率萎羔。
你能夠與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是一個先進(jìn)的復(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框架提供通過藍(lán)牙進(jìn)行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ù)保護(hù))
DataProtection允許應(yīng)用利用設(shè)備上已有的內(nèi)建的加密方法來使用用戶的敏感數(shù)據(jù)菇爪。
當(dāng)應(yīng)用指定一個特定的文件被保護(hù)時算芯,系統(tǒng)在磁盤上以加密格式存儲該文件。當(dāng)設(shè)備鎖定時凳宙,該文件的內(nèi)容不能被應(yīng)用和任何潛在的侵入者存取熙揍。可是當(dāng)設(shè)備由用戶解鎖時氏涩,一個解密key被創(chuàng)建允許你的應(yīng)用存取那個文件届囚。
用戶也可以使用其它級別的數(shù)據(jù)保護(hù)機制。
實現(xiàn)數(shù)據(jù)保護(hù)需要你考慮如何創(chuàng)建和管理你想保護(hù)的數(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移進(jìn)或移出應(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è)備插進(jìn)用戶的計算機時,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ù)庫撩满,而不需要運行一個分離的遠(yuǎn)程數(shù)據(jù)庫服務(wù)進(jìn)程。從你的應(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)用管理賬號認(rèn)證過程來簡化開發(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é)議進(jìn)行抽象的一組C-based接口蝗蛙。這些抽象提供對協(xié)議棧細(xì)節(jié)的控制蝇庭,使它容易使用低級別的構(gòu)造例如BSDsockets。
你能使用該框架簡化與ftp或http服務(wù)器通訊或決定dnshosts的任務(wù)捡硅。使用CFNetwork 框架哮内,你能:
1、使用BSD sockets壮韭。
2北发、使用SSL或TLS創(chuàng)建安全連接。
3喷屋、決定dnshosts琳拨。
4、與HTTP服務(wù)器逼蒙、認(rèn)證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)](http://lib.csdn.net/base/31),在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)用進(jìn)行大的更新豹休,應(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) 基于地理位置或藍(lán)牙beacon進(jìn)行區(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ī)則表達(dá)式匹配;

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ù)的信息。
電子入場券也可以包含一個對卡進(jìn)行校驗的條碼或其它信息溢谤,以便它能被兌換或使用瞻凤。
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)提供可達(dá)性接口降狠,你能用它來確定設(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(核心藍(lán)牙框架)
CoreBluetooth 框架 (CoreBluetooth.framework)允許開發(fā)者與藍(lán)牙低耗電外設(shè)(LE)交互溃论。
使用該框架的Objective-C接口能夠完成如下工作:

       1屎蜓、掃描藍(lán)牙外設(shè)痘昌,連接和斷開發(fā)現(xiàn)的藍(lán)牙外設(shè)钥勋;
       2、聲明應(yīng)用的服務(wù)辆苔,轉(zhuǎn)換ios 設(shè)備成其它藍(lán)牙設(shè)備的外設(shè)算灸;
       3、 從IOS設(shè)備廣播iBeacon信息驻啤;

 4菲驴、保存你的藍(lán)牙連接的狀態(tài),當(dāng)應(yīng)用重新啟動時恢復(fù)那些連接骑冗;
      5赊瞬、藍(lán)牙外設(shè)可獲得性變化時獲得通知。

3)External Accessory Framework(外部附件框架)
ExternalAccessory 框架(ExternalAccessory.framework)提供與連接到IOS設(shè)備的硬件附件通訊的支持贼涩。
附件能通過30-pin連接器或使用藍(lán)牙無線與IOS設(shè)備進(jìn)行連接巧涧。該框架給你提供了獲得關(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認(rèn)證編碼(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本身負(fù)責(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進(jìn)行編譯扣汪、鏈接和調(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)移植時不會碰到太頭疼的事。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末暗膜,一起剝皮案震驚了整個濱河市匀奏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌学搜,老刑警劉巖娃善,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異瑞佩,居然都是意外死亡聚磺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門炬丸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘫寝,“玉大人蜒蕾,你說我怎么就攤上這事』腊ⅲ” “怎么了咪啡?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長暮屡。 經(jīng)常有香客問我撤摸,道長,這世上最難降的妖魔是什么褒纲? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任准夷,我火速辦了婚禮,結(jié)果婚禮上外厂,老公的妹妹穿的比我還像新娘冕象。我一直安慰自己代承,他們只是感情好汁蝶,可當(dāng)我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著论悴,像睡著了一般掖棉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上膀估,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天幔亥,我揣著相機與錄音,去河邊找鬼察纯。 笑死帕棉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的饼记。 我是一名探鬼主播香伴,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼具则!你這毒婦竟也來了即纲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤博肋,失蹤者是張志新(化名)和其女友劉穎低斋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匪凡,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡膊畴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了病游。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唇跨。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出轻绞,到底是詐尸還是另有隱情采记,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布政勃,位于F島的核電站唧龄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏奸远。R本人自食惡果不足惜既棺,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懒叛。 院中可真熱鬧丸冕,春花似錦、人聲如沸薛窥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诅迷。三九已至佩番,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間罢杉,已是汗流浹背趟畏。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滩租,地道東北人赋秀。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像律想,于是被迫代替她去往敵國和親猎莲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 6轉(zhuǎn)載-->>IOS框架和服務(wù) 在iOS中框架是一個目錄蜘欲,包含了共享資源庫益眉,用于訪問該資源庫中儲存的代碼的頭文件,...
    李小六_閱讀 3,620評論 2 24
  • 在iOS中框架是一個目錄姥份,包含了共享資源庫郭脂,用于訪問該資源庫中儲存的代碼的頭文件,以及圖像澈歉、聲音文件等其他資源展鸡。共...
    wo不懂閱讀 1,432評論 3 3
  • 在iOS中框架是一個目錄,包含了共享資源庫埃难,用于訪問該資源庫中儲存的代碼的頭文件莹弊,以及圖像涤久、聲音文件等其他資源。共...
    ch123閱讀 1,780評論 0 1
  • 就在一棵棵盛開的花樹下 游人如織忍弛,一張張亢奮的臉 泛著濃濃油意响迂,變換著不同方式 紛紛表達(dá)對美的追逐或展現(xiàn)美的神韻 ...
    南屯游子閱讀 282評論 0 3
  • EIGHT For a week, I barely saw Hassan. I woke up to find ...
    我愛蘋果zxq閱讀 907評論 0 1