框架是一個目錄,這個目錄包含了共享庫,訪問共享庫裏代碼的頭文件,和其它的圖片和聲音的資源文件。一個共享庫定義的方法或函數能夠被應用程序調用。html
IOS提供了不少你能夠在應用程序裏調用的框架。要使用一個框架,須要將它添加到你的項目中,你的項目纔可使用它。許多應用程序都使用瞭如Foundation、UIKit、和Core Graphics這些框架。根據你爲應用程序選擇的模版,相關的框架就已經被自動引入了。若是默認加入的框架不能知足你的應用程序的需求,你也能夠加入須要的框架。web
看看HelloWorld.xcodeproj項目裏都包含了哪些框架(注:HelloWorld.xcodeproj是《Your First iOS App tutorial 》這篇教程裏的一個項目)
1.在XCode裏打開HelloWorld.xcodeproj項目(若是尚未打開)
2. 在project navigator窗口裏點擊,點擊Frameworks目錄前面的三角形圖標。你會看到:UIKit.framework,Foundation.framework, 和CoreGraphics.framework
3. 點擊任意一個framework前面的三角,而後再點擊Headers前面的三角,能夠看到框架裏的頭文件。
每一個框架對應IOS系統裏的一層,每層創建在它下面層的上面。應該儘可能使用上層的框架來代替下面的框架。更高層次的框架是對底層框架基於對象的抽象。
複製代碼
在你開發程序時,主要使用框架就是Foundation和UIKit,由於它們包含了你須要的大部分東西。數據庫
Foundation框架爲全部的應用程序提供基本系統服務數組
你的應用程序,UIKit和其它的框架都是創建在Foundation框架上面的。Foundation框架是用Object-C對Core Foundation框架裏許多特性的封裝。xcode
使用Foundation能夠:bash
你已經在《Your First iOS App》裏使用到了Foundation框架。好比,你使用一個NSString類的實例存儲用戶輸入的userName。你還使用了Foundation框架的initWithFormat方法建立了一個字符串。網絡
UIKit框架提供建立基於觸摸用戶界面的類app
全部的iOS應用程序都基於UIKit,你不能是應用程序脫離這個框架。UIKit提供了在屏幕上繪製的機制,捕獲事件,和建立通用用戶界面元素。UIKit也經過管理顯示在屏幕上的組件來組織複雜的項目。框架
使用UIKit能夠:iphone
在《YouFirst iOS App Tutorial》裏,你也使用到了UIKit。當你仔細查看程序是怎麼運行起來的時候,你會看到UIApplicationMain函數建立一個UIApplication類的實例,這個實例會捕獲進來的用戶事件。你實現UITextFieldDelegate協議,而後在用戶按下Done時隱藏鍵盤。實際上,你是在使用UIKit建立用戶界面上的UITextField, UILabel,和UIButton類。
Core Data , Core Graphics, Core Animation,和OpenGLES框架都是高級的技術。因此這些框架對於你開發應用程序也是很重要的,它們都須要時間去學習和掌握。
Core Data框架管着理應用程序數據模型
Core Data提供對象的管理,使用Core Data,你能夠建立模型對象,並管理這些對象。你管理這這些對象間的聯繫並修改數據。Core Data提供的內建SQLlite技術能夠高效的管理數據。
使用Core Data能夠:
Core Graphics框架幫助你建立圖形
高質量的圖形對於全部的iOS應用程序都是很重要的。在iOS中最簡單且最快捷的建立圖形的方式是使用UIKit框架提供的基於預渲染圖形的視圖和控件,而後讓UIKit和iOS完成繪製。可是當你須要建立複雜的圖形時,Core Graphics則提供了更底層的庫來幫助你。
使用Core Graphics能夠:
Core Animation容許你建立高級的動畫和虛擬效果
UIKit提供創建在Core Animation之上的動畫。若是你須要比UIKit能力更高級的功能,能夠直接使用Core Animation。Core Animation接口包含在Quartz Core框架裏。使用Core Animation能夠建立嵌套的對象,而且能夠對它們操做、旋轉、縮放和轉換。使用Core animation,你能夠建立動態的用戶界面而不用使用更底層的圖形API,如OpenGL ES。
使用Core Animation能夠:
OpenGL ES 框架提供2D和3D繪圖工具
OpenGL ES支持2D和3D繪圖,Apple的OpenGL ES實現經過硬件提供了高速的全屏遊戲式的應用程序。
使用OpenGL ES能夠:
根據須要向項目中添加其它框架
還有許多框架能夠添加到你的程序裏。當你決定使用一個框架但項目裏卻沒有引入這個框架時,你就須要將它加入到你的項目裏。
將別的框架添加到工程裏
1 打開工程
2 點擊項目名,顯示project editor
3 在TARGETS列表中選中要添加框架的工程
4 點擊project editor頂部的Build Phases
5 點擊Link Binary With Libraries前面的三角形打開這個分組
6 經過點擊添加(+)來添加一個框架
7 在列表中選擇一個框架,而後點擊Add按鈕
複製代碼
名稱 | 最早引入 | 前綴 | 描述 |
---|---|---|---|
Accelerate.framework | 4.0 | cblas,vDSP | 包含加速數學和DSP函數。 請查看 加速框架參考 。 |
AddressBook.framework | 2.0 | AB | 包含直接訪問用戶聯繫人數據庫的函數。請查看地址簿框架參考。 |
AddressBookUI.framework | 2.0 | AB | 包含顯示系統定義的聯繫人挑選界面和編輯界面的類。請查看iOS地址簿UI框架參考 。 |
AssetsLibrary.framework | 4.0 | AL | 包含顯示用戶照片和視頻的類,請查看資源庫框架參考 。 |
AudioToolbox.framework | 2.0 | AU,Audio | 包含處理音頻流數據以及播放或錄製音頻的接口。請查看音頻工具箱框架參考。 |
AudioUnit.framework | 2.0 | AU,Audio | 包含加載並使用音頻單元的接口。請查看音頻單元框架參考. |
AVFoundation.framework | 2.2 | AV | 包含播放或錄製音頻的Objective-C接口。請查看AV Foundation框架參考.。 |
CFNetwork.framework | 2.0 | CF | 包含經過WiFi或者蜂窩無線訪問網絡的接口。請查看CFNetwork框架參考。 |
CoreAudio.framework | 2.0 | Audio | 包含Core Audio框架使用的各類數據類型。請查看Core Audio 框架參考 。 |
CoreData.framework | 3.0 | NS | 包含管理應用程序數據模型的接口。請查看Core Data 框架參考 。 |
CoreFoundation.framework | 2.0 | CF | 提供一些基本軟件服務,包括常見數據類型抽象、字符串實用工具、羣體類型實用工具、資源管理以及偏好設置。請查看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 | 包含訪問加速度計以及陀螺儀的數據的接口。請查看Core Motion 框架參考。 |
CoreTelephony.framework | 4.0 | CT | 包含訪問電話相關的信息的例程。請查看Core Telephony 框架參考。 |
CoreText.framework | 3.2 | CT | 包含一個文本的佈局渲染引擎。請查看Core Text參考集.。 |
CoreVideo.framework | 4.0 | CV | 包含操做音頻和視頻的底層例程。請不要直接使用該框架。 |
EventKit.framework | 4.0 | EK | 包含訪問用戶日曆事件數據的接口。請查看Event Kit 框架參考。 |
EventKitUI.framework | 4.0 | EK | 包含顯示標準系統日曆界面的類。請查看Event Kit UI 框架參考。 |
ExternalAccessory.framework | 3.0 | EA | 包含與外設進行通信的接口。請查看External Accessory 框架參考。 |
Foundation.framework | 2.0 | NS | 包含Cocoa Foundation層的類和方法。請查看Foundation 框架參考。 |
GameKit.framework | 3.0 | GK | 包含點對點鏈接管理接口。請查看Game Kit 框架參考。 |
iAd.framework | 4.0 | AD | 包含在應用程序中顯示廣告的類。請查看iAd 框架參考。 |
ImageIO.framework | 4.0 | CG | 包含讀取或寫入圖像數據的類。請查看Image I/O 參考集。 |
IOKit.framework | 2.0 | N/A | 包含設備所使用的接口。請不要直接使用此框架。 |
MapKit.framework | 3.0 | MK | 包含將地圖界面嵌入到應用程序的類,也能夠用於查找地理編碼反向座標。請查看Map Kit框架參考。 |
MediaPlayer.framework | 2.0 | MP | 包含顯示全屏視頻的接口。請查看Media Player 框架參考。 |
MessageUI.framework | 3.0 | MF | 包含撰寫和排隊發送電子郵件信息的界面。請查看Message UI 框架參考。 |
MobileCoreServices.framework | 3.0 | UT | 定義系統支持的統一類型標識符(UTIs)。 |
OpenAL.framework | 2.0 | AL | 包含OpenAL接口。OpenAL是一個跨平臺的方位音頻庫。如需進一步瞭解,請訪問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 | 包含預覽文件接口。請查看Quick Look 框架參考。 |
Security.framework | 2.0 | CSSM,Sec | 包含管理證書、公鑰私鑰以及信任策略的接口。請查看Security框架參考。 |
StoreKit.framework | 3.0 | SK | 包含用於處理與應用程序內購買相關的財務交易。請查看 Store Kit 框架參考。 |
SystemConfiguration.framework | 2.0 | SC | 包含用於處理設備網絡配置的接口。請查看System Configuration框架參考。 |
UIKit.framework | 2.0 | UI | 包含iOS應用程序用戶界面層使用的類和方法。請查看UIKit 框架參考。 |