iOS開發(fā)常用框架總覽锌半!

框架是一個目錄,這個目錄包含了共享庫寇漫,訪問共享庫里代碼的頭文件刊殉,和其它的圖片和聲音的資源文件。一個共享庫定義的方法或函數(shù)可以被應(yīng)用程序調(diào)用州胳。

IOS提供了很多你可以在應(yīng)用程序里調(diào)用的框架记焊。要使用一個框架,需要將它添加到你的項(xiàng)目中栓撞,你的項(xiàng)目才可以使用它亚亲。許多應(yīng)用程序都使用了如Foundation、UIKit腐缤、和Core Graphics這些框架捌归。根據(jù)你為應(yīng)用程序選擇的模版,相關(guān)的框架就已經(jīng)被自動引入了岭粤。如果默認(rèn)加入的框架不能滿足你的應(yīng)用程序的需求惜索,你也可以加入需要的框架。

看看HelloWorld.xcodeproj項(xiàng)目里都包含了哪些框架(注:HelloWorld.xcodeproj是《Your First iOS App tutorial 》這篇教程里的一個項(xiàng)目)

1.在XCode里打開HelloWorld.xcodeproj項(xiàng)目(如果還沒有打開)

2. 在project navigator窗口里點(diǎn)擊剃浇,點(diǎn)擊Frameworks目錄前面的三角形圖標(biāo)巾兆。你會看到:UIKit.framework,Foundation.framework, 和CoreGraphics.framework

3. 點(diǎn)擊任意一個framework前面的三角,然后再點(diǎn)擊Headers前面的三角虎囚,可以看到框架里的頭文件角塑。

每個框架對應(yīng)IOS系統(tǒng)里的一層,每層建立在它下面層的上面淘讥。應(yīng)該盡量使用上層的框架來代替下面的框架圃伶。更高層次的框架是對底層框架基于對象的抽象。

iOS應(yīng)用程序基于Foundation和UIKit框架

在你開發(fā)程序時(shí)蒲列,主要使用框架就是Foundation和UIKit窒朋,因?yàn)樗鼈儼四阈枰拇蟛糠謻|西。

Foundation框架為所有的應(yīng)用程序提供基本系統(tǒng)服務(wù)

你的應(yīng)用程序蝗岖,UIKit和其它的框架都是建立在Foundation框架上面的侥猩。Foundation框架是用Object-C對Core Foundation框架里許多特性的封裝。

使用Foundation可以:

  • 創(chuàng)建和管理集合抵赢,比如數(shù)組和字典
  • 訪問存儲在應(yīng)用程序里的圖片和其它資源
  • 創(chuàng)建和管理字符串
  • 提交和接收通知
  • 創(chuàng)建日期和時(shí)間對象
  • 自動發(fā)現(xiàn)IP網(wǎng)絡(luò)上的設(shè)備
  • 操作URL流
  • 執(zhí)行異步代碼

你已經(jīng)在《Your First iOS App》里使用到了Foundation框架欺劳。比如,你使用一個NSString類的實(shí)例存儲用戶輸入的userName铅鲤。你還使用了Foundation框架的initWithFormat方法創(chuàng)建了一個字符串划提。

UIKit框架提供創(chuàng)建基于觸摸用戶界面的類

所有的iOS應(yīng)用程序都基于UIKit巴帮,你不能是應(yīng)用程序脫離這個框架台夺。UIKit提供了在屏幕上繪制的機(jī)制,捕獲事件靡砌,和創(chuàng)建通用用戶界面元素驼仪。UIKit也通過管理顯示在屏幕上的組件來組織復(fù)雜的項(xiàng)目掸犬。

使用UIKit可以:

  • 構(gòu)建和管理你的用戶界面
  • 捕獲觸摸和基于移動的事件
  • 呈現(xiàn)文字和web內(nèi)容
  • 優(yōu)化你的多任務(wù)程序
  • 創(chuàng)建定制的用戶界面元素

在《YouFirst iOS App Tutorial》里,你也使用到了UIKit绪爸。當(dāng)你仔細(xì)查看程序是怎么運(yùn)行起來的時(shí)候湾碎,你會看到UIApplicationMain函數(shù)創(chuàng)建一個UIApplication類的實(shí)例,這個實(shí)例會捕獲進(jìn)來的用戶事件奠货。你實(shí)現(xiàn)UITextFieldDelegate協(xié)議介褥,然后在用戶按下Done時(shí)隱藏鍵盤。實(shí)際上,你是在使用UIKit創(chuàng)建用戶界面上的UITextField柔滔, UILabel溢陪,和UIButton類。

你需要知道的其它重要的框架

Core Data , Core Graphics, Core Animation,和OpenGLES框架都是高級的技術(shù)睛廊。所以這些框架對于你開發(fā)應(yīng)用程序也是很重要的形真,它們都需要時(shí)間去學(xué)習(xí)和掌握。

Core Data框架管著理應(yīng)用程序數(shù)據(jù)模型

Core Data提供對象的管理超全,使用Core Data咆霜,你可以創(chuàng)建模型對象,并管理這些對象嘶朱。你管理這這些對象間的聯(lián)系并修改數(shù)據(jù)蛾坯。Core Data提供的內(nèi)建SQLlite技術(shù)可以高效的管理數(shù)據(jù)。

使用Core Data可以:

  • 在庫里存儲和接收對象
  • 提供基本的undo/redo
  • 自動驗(yàn)證屬性值
  • 過濾疏遏、分組和優(yōu)化內(nèi)存中的數(shù)據(jù)
  • 用[NSFetchedResultsController]管理表視圖中的結(jié)果
  • 支持基于文檔的應(yīng)用程序

Core Graphics框架幫助你創(chuàng)建圖形

高質(zhì)量的圖形對于所有的iOS應(yīng)用程序都是很重要的脉课。在iOS中最簡單且最快捷的創(chuàng)建圖形的方式是使用UIKit框架提供的基于預(yù)渲染圖形的視圖和控件,然后讓UIKit和iOS完成繪制改览。但是當(dāng)你需要創(chuàng)建復(fù)雜的圖形時(shí)下翎,Core Graphics則提供了更底層的庫來幫助你。

使用Core Graphics可以:

  • 創(chuàng)建基于路徑的繪圖
  • 抗鋸齒渲染
  • 添加梯度宝当、圖片和顏色
  • Use coordinate-space transformations.
  • 創(chuàng)建视事、顯示和分析PDF文檔

Core Animation允許你創(chuàng)建高級的動畫和虛擬效果

UIKit提供建立在Core Animation之上的動畫。如果你需要比UIKit能力更高級的功能庆揩,可以直接使用Core Animation俐东。Core Animation接口包含在Quartz Core框架里。使用Core Animation可以創(chuàng)建嵌套的對象订晌,并且可以對它們操作虏辫、旋轉(zhuǎn)、縮放和轉(zhuǎn)換锈拨。使用Core animation砌庄,你可以創(chuàng)建動態(tài)的用戶界面而不用使用更底層的圖形API,如OpenGL ES奕枢。

使用Core Animation可以:

  • 創(chuàng)建定制動畫
  • 添加定時(shí)函數(shù)和圖形
  • 支持幀動畫
  • Specify graphical layout constraints.
  • Group multiple-layer changes into anatomic update.

OpenGL ES 框架提供2D和3D繪圖工具

OpenGL ES支持2D和3D繪圖娄昆,Apple的OpenGL ES實(shí)現(xiàn)通過硬件提供了高速的全屏游戲式的應(yīng)用程序。

使用OpenGL ES可以:

  • 創(chuàng)建2D和3D圖形
  • 創(chuàng)建更復(fù)雜的圖形缝彬,比如數(shù)據(jù)虛擬化萌焰、模擬飛行,或者視頻游戲
  • 訪問底層圖形設(shè)備

根據(jù)需要向項(xiàng)目中添加其它框架

還有許多框架可以添加到你的程序里谷浅。當(dāng)你決定使用一個框架但項(xiàng)目里卻沒有引入這個框架時(shí)扒俯,你就需要將它加入到你的項(xiàng)目里奶卓。

將別的框架添加到工程里

  1 打開工程
  2 點(diǎn)擊項(xiàng)目名,顯示project editor
  3 在TARGETS列表中選中要添加框架的工程
  4 點(diǎn)擊project editor頂部的Build Phases
  5 點(diǎn)擊Link Binary With Libraries前面的三角形打開這個分組
  6 通過點(diǎn)擊添加(+)來添加一個框架
  7 在列表中選擇一個框架撼玄,然后點(diǎn)擊Add按鈕
名稱 最先引入 前綴 描述
Accelerate.framework 4.0 cblas,vDSP 包含加速數(shù)學(xué)和DSP函數(shù)夺姑。 請查看 加速框架參考
AddressBook.framework 2.0 AB 包含直接訪問用戶聯(lián)系人數(shù)據(jù)庫的函數(shù)互纯。請查看地址簿框架參考瑟幕。
AddressBookUI.framework 2.0 AB 包含顯示系統(tǒng)定義的聯(lián)系人挑選界面和編輯界面的類。請查看iOS地址簿UI框架參考 留潦。
AssetsLibrary.framework 4.0 AL 包含顯示用戶照片和視頻的類,請查看資源庫框架參考 辣往。
AudioToolbox.framework 2.0 AU,Audio 包含處理音頻流數(shù)據(jù)以及播放或錄制音頻的接口兔院。請查看音頻工具箱框架參考
AudioUnit.framework 2.0 AU,Audio 包含加載并使用音頻單元的接口站削。請查看音頻單元框架參考.
AVFoundation.framework 2.2 AV 包含播放或錄制音頻的Objective-C接口坊萝。請查看AV Foundation框架參考.。
CFNetwork.framework 2.0 CF 包含通過WiFi或者蜂窩無線訪問網(wǎng)絡(luò)的接口许起。請查看CFNetwork框架參考十偶。
CoreAudio.framework 2.0 Audio 包含Core Audio框架使用的各種數(shù)據(jù)類型。請查看Core Audio 框架參考 园细。
CoreData.framework 3.0 NS 包含管理應(yīng)用程序數(shù)據(jù)模型的接口惦积。請查看Core Data 框架參考
CoreFoundation.framework 2.0 CF 提供一些基本軟件服務(wù)猛频,包括常見數(shù)據(jù)類型抽象狮崩、字符串實(shí)用工具、群體類型實(shí)用工具鹿寻、資源管理以及偏好設(shè)置睦柴。請查看rovCore Foundation框架參考
CoreGraphics.framework 2.0 CG 包含Quartz 2D接口毡熏。請查看Core Graphics 框架參考 坦敌。
CoreLocation.framework 2.0 CL 包含確定用戶方位信息的接口。請查看Core Location 框架參考痢法。
CoreMedia.framework 4.0 CM 包含操作音頻和視頻的底層例程狱窘。請查看Core Media 框架參考
CoreMotion.framework 4.0 CM 包含訪問加速度計(jì)以及陀螺儀的數(shù)據(jù)的接口疯暑。請查看Core Motion 框架參考训柴。
CoreTelephony.framework 4.0 CT 包含訪問電話相關(guān)的信息的例程。請查看Core Telephony 框架參考妇拯。
CoreText.framework 3.2 CT 包含一個文本的布局渲染引擎幻馁。請查看Core Text參考集.洗鸵。
CoreVideo.framework 4.0 CV 包含操作音頻和視頻的底層例程。請不要直接使用該框架仗嗦。
EventKit.framework 4.0 EK 包含訪問用戶日歷事件數(shù)據(jù)的接口膘滨。請查看Event Kit 框架參考
EventKitUI.framework 4.0 EK 包含顯示標(biāo)準(zhǔn)系統(tǒng)日歷界面的類稀拐。請查看Event Kit UI 框架參考火邓。
ExternalAccessory.framework 3.0 EA 包含與外設(shè)進(jìn)行通訊的接口。請查看External Accessory 框架參考德撬。
Foundation.framework 2.0 NS 包含Cocoa Foundation層的類和方法铲咨。請查看Foundation 框架參考
GameKit.framework 3.0 GK 包含點(diǎn)對點(diǎn)連接管理接口蜓洪。請查看Game Kit 框架參考纤勒。
iAd.framework 4.0 AD 包含在應(yīng)用程序中顯示廣告的類。請查看iAd 框架參考隆檀。
ImageIO.framework 4.0 CG 包含讀取或?qū)懭雸D像數(shù)據(jù)的類摇天。請查看Image I/O 參考集
IOKit.framework 2.0 N/A 包含設(shè)備所使用的接口恐仑。請不要直接使用此框架泉坐。
MapKit.framework 3.0 MK 包含將地圖界面嵌入到應(yīng)用程序的類,也可以用于查找地理編碼反向坐標(biāo)裳仆。請查看Map Kit框架參考腕让。
MediaPlayer.framework 2.0 MP 包含顯示全屏視頻的接口。請查看Media Player 框架參考鉴逞。
MessageUI.framework 3.0 MF 包含撰寫和排隊(duì)發(fā)送電子郵件信息的界面记某。請查看Message UI 框架參考
MobileCoreServices.framework 3.0 UT 定義系統(tǒng)支持的統(tǒng)一類型標(biāo)識符(UTIs)构捡。
OpenAL.framework 2.0 AL 包含OpenAL接口液南。OpenAL是一個跨平臺的方位音頻庫。如需進(jìn)一步了解勾徽,請?jiān)L問http://www.openal.org滑凉。
OpenGLES.framework 2.0 EAGL,GL 包含OpenGL ES接口。OpenGL ES框架是OpenGL跨平臺2D和3D渲染庫的跨平臺版本喘帚。請查看OpenGL ES 框架參考畅姊。
QuartzCore.framework 2.0 CA 包含Core Animation接口。請查看Quartz Core 框架參考吹由。
QuickLook.framework 4.0 QL 包含預(yù)覽文件接口若未。請查看Quick Look 框架參考
Security.framework 2.0 CSSM,Sec 包含管理證書倾鲫、公鑰私鑰以及信任策略的接口粗合。請查看Security框架參考萍嬉。
StoreKit.framework 3.0 SK 包含用于處理與應(yīng)用程序內(nèi)購買相關(guān)的財(cái)務(wù)交易。請查看 Store Kit 框架參考隙疚。
SystemConfiguration.framework 2.0 SC 包含用于處理設(shè)備網(wǎng)絡(luò)配置的接口壤追。請查看System Configuration框架參考
UIKit.framework 2.0 UI 包含iOS應(yīng)用程序用戶界面層使用的類和方法供屉。請查看UIKit 框架參考行冰。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市伶丐,隨后出現(xiàn)的幾起案子悼做,更是在濱河造成了極大的恐慌,老刑警劉巖撵割,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贿堰,死亡現(xiàn)場離奇詭異,居然都是意外死亡啡彬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門故硅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庶灿,“玉大人,你說我怎么就攤上這事吃衅⊥撸” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵徘层,是天一觀的道長峻呕。 經(jīng)常有香客問我,道長趣效,這世上最難降的妖魔是什么瘦癌? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮跷敬,結(jié)果婚禮上讯私,老公的妹妹穿的比我還像新娘。我一直安慰自己西傀,他們只是感情好斤寇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拥褂,像睡著了一般娘锁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饺鹃,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天莫秆,我揣著相機(jī)與錄音间雀,去河邊找鬼。 笑死馏锡,一個胖子當(dāng)著我的面吹牛雷蹂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播杯道,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼匪煌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了党巾?” 一聲冷哼從身側(cè)響起萎庭,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎齿拂,沒想到半個月后驳规,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡署海,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年吗购,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砸狞。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡捻勉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刀森,到底是詐尸還是另有隱情踱启,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布研底,位于F島的核電站埠偿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏榜晦。R本人自食惡果不足惜冠蒋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芽隆。 院中可真熱鬧浊服,春花似錦、人聲如沸胚吁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腕扶。三九已至孽拷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間半抱,已是汗流浹背脓恕。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工膜宋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炼幔。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓秋茫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乃秀。 傳聞我的和親對象是個殘疾皇子肛著,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

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