iOS操作系統(tǒng)是蘋(píng)果為公司移動(dòng)設(shè)備提供的操作系統(tǒng)市殷,為方便應(yīng)用開(kāi)發(fā)者采用了先進(jìn)的設(shè)計(jì)模式秦叛。采用了經(jīng)典的MVC設(shè)計(jì)模式和框架模式新荤。本篇文章我們主要關(guān)注iOS系統(tǒng)提供的框架荧嵌,對(duì)MVC設(shè)計(jì)模式不做過(guò)多的描述慰枕。
我們通常稱(chēng)呼iOS的框架為Cocoa Touch框架具则,Cocoa Touch是一個(gè)框架的集合,里面包含了眾多的子框架具帮。每一個(gè)子框架都是一個(gè)目錄博肋,包含了共享資源庫(kù),用于訪問(wèn)該資源庫(kù)中儲(chǔ)存的代碼的頭文件蜂厅,以及圖像匪凡、聲音文件等其他資源,共享資源庫(kù)定義應(yīng)用程序可以調(diào)用的函數(shù)和方法掘猿〔∮危框架中的類(lèi)相互依賴(lài)構(gòu)成一個(gè)整體,提供完善的某一方面的服務(wù)或解決方案稠通,多個(gè)框架一起實(shí)現(xiàn)整個(gè)應(yīng)用程序的結(jié)構(gòu)衬衬。由于應(yīng)用程序的結(jié)構(gòu)是通用的,開(kāi)發(fā)者通過(guò)框架提供的函數(shù)和方法改橘,做細(xì)致個(gè)性化的處理滋尉,從而滿(mǎn)足不同應(yīng)用的不同需求。開(kāi)發(fā)一個(gè)應(yīng)用程序就是將需求細(xì)致化的代碼插入到框架提供的設(shè)計(jì)中來(lái)組合成一個(gè)整體完成最終的應(yīng)用設(shè)計(jì)唧龄。
框架的結(jié)構(gòu)是泛型結(jié)構(gòu)兼砖,為應(yīng)用程序提供一個(gè)模板奸远。就像我們之前說(shuō)的既棺,多個(gè)框架一起實(shí)現(xiàn)了整個(gè)應(yīng)用程序的結(jié)構(gòu)讽挟,我們必須接受它所定義好的應(yīng)用程序結(jié)構(gòu),設(shè)計(jì)的時(shí)候讓我們的應(yīng)用適合該結(jié)構(gòu)丸冕。
iOS提供的許多可使用的框架耽梅,構(gòu)成了iOS操作系統(tǒng)的層次結(jié)構(gòu),從下到上依次是:Core OS胖烛、Core Ssevices眼姐、MediaLayer、Cocoa Touch共四層佩番。下圖為iOS8.3系統(tǒng)的框架架構(gòu)圖
Core OS Layer,系統(tǒng)核心層包含大多數(shù)低級(jí)別接近硬件的功能众旗,它所包含的框架常常被其它框架所使用。Accelerate框架包含數(shù)字信號(hào)趟畏,線性代數(shù)贡歧,圖像處理的接口。針對(duì)所有的iOS設(shè)備硬件之間的差異做優(yōu)化赋秀,保證寫(xiě)一次代碼在所有iOS設(shè)備上高效運(yùn)行利朵。CoreBluetooth框架利用藍(lán)牙和外設(shè)交互,包括掃描連接藍(lán)牙設(shè)備猎莲,保存連接狀態(tài)绍弟,斷開(kāi)連接,獲取外設(shè)的數(shù)據(jù)或者給外設(shè)傳輸數(shù)據(jù)等等著洼。Security框架提供管理證書(shū)樟遣,公鑰和私鑰信任策略,keychain,hash認(rèn)證數(shù)字簽名等等與安全相關(guān)的解決方案身笤。
Core Services Layer,系統(tǒng)服務(wù)層提供給應(yīng)用所需要的基礎(chǔ)的系統(tǒng)服務(wù)年碘。如Accounts賬戶(hù)框架,廣告框架展鸡,數(shù)據(jù)存儲(chǔ)框架屿衅,網(wǎng)絡(luò)連接框架,地理位置框架莹弊,運(yùn)動(dòng)框架等等涤久。這些服務(wù)中的最核心的是CoreFoundation和Foundation框架,定義了所有應(yīng)用使用的數(shù)據(jù)類(lèi)型忍弛。CoreFoundation是基于C的一組接口响迂,F(xiàn)oundation是對(duì)CoreFoundation的OC封裝。
Media Layer,媒體層提供應(yīng)用中視聽(tīng)方面的技術(shù)细疚,如圖形圖像相關(guān)的CoreGraphics,CoreImage,GLKit,OpenGL ES,CoreText,ImageIO等等蔗彤。聲音技術(shù)相關(guān)的CoreAudio,OpenAL,AVFoundation,視頻相關(guān)的CoreMedia,Media Player框架,音視頻傳輸?shù)腁irPlay框架等等。
Cocoa Touch Layer,觸摸層提供應(yīng)用基礎(chǔ)的關(guān)鍵技術(shù)支持和應(yīng)用的外觀然遏。如NotificationCenter的本地通知和遠(yuǎn)程推送服務(wù)贫途,iAd廣告框架,GameKit游戲工具框架待侵,消息UI框架丢早,圖片UI框架,地圖框架秧倾,連接手表框架怨酝,自動(dòng)適配等等
在上面所有的框架中,最重要也最經(jīng)常使用的就是UIKit和Foundation框架那先。Foundation框架提供許多基本的對(duì)象類(lèi)和數(shù)據(jù)類(lèi)型农猬,使其成為應(yīng)用程序開(kāi)發(fā)的基礎(chǔ),為所有應(yīng)用程序提供最基本的系統(tǒng)服務(wù),和界面無(wú)關(guān)售淡。 UIKit框架提供的類(lèi)是基礎(chǔ)的UI類(lèi)庫(kù)斤葱,用于創(chuàng)建基于觸摸的用戶(hù)界面,所有 iOS 應(yīng)用程序都是基于 UIKit勋又,它提供應(yīng)用程序的基礎(chǔ)架構(gòu)苦掘,用于構(gòu)建用戶(hù)界面,繪圖楔壤、處理和用戶(hù)交互事件鹤啡,響應(yīng)手勢(shì)等等。UIKit通過(guò)控制器對(duì)象管理屏幕上顯示的內(nèi)容蹲嚣,界面的跳轉(zhuǎn)递瑰,來(lái)組織應(yīng)用程序。沒(méi)有UIKit框架就沒(méi)有iOS應(yīng)用程序隙畜。
鏈接:http://www.reibang.com/p/e01e2512c12b