iOS開發經常使用框架總覽!

框架是一個目錄,這個目錄包含了共享庫,訪問共享庫裏代碼的頭文件,和其它的圖片和聲音的資源文件。一個共享庫定義的方法或函數能夠被應用程序調用。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系統裏的一層,每層創建在它下面層的上面。應該儘可能使用上層的框架來代替下面的框架。更高層次的框架是對底層框架基於對象的抽象。
複製代碼

iOS應用程序基於Foundation和UIKit框架

在你開發程序時,主要使用框架就是Foundation和UIKit,由於它們包含了你須要的大部分東西。數據庫

Foundation框架爲全部的應用程序提供基本系統服務數組

你的應用程序,UIKit和其它的框架都是創建在Foundation框架上面的。Foundation框架是用Object-C對Core Foundation框架裏許多特性的封裝。xcode

使用Foundation能夠:bash

  • 建立和管理集合,好比數組和字典
  • 訪問存儲在應用程序裏的圖片和其它資源
  • 建立和管理字符串
  • 提交和接收通知
  • 建立日期和時間對象
  • 自動發現IP網絡上的設備
  • 操做URL流
  • 執行異步代碼

你已經在《Your First iOS App》裏使用到了Foundation框架。好比,你使用一個NSString類的實例存儲用戶輸入的userName。你還使用了Foundation框架的initWithFormat方法建立了一個字符串。網絡

UIKit框架提供建立基於觸摸用戶界面的類app

全部的iOS應用程序都基於UIKit,你不能是應用程序脫離這個框架。UIKit提供了在屏幕上繪製的機制,捕獲事件,和建立通用用戶界面元素。UIKit也經過管理顯示在屏幕上的組件來組織複雜的項目。框架

使用UIKit能夠:iphone

  • 構建和管理你的用戶界面
  • 捕獲觸摸和基於移動的事件
  • 呈現文字和web內容
  • 優化你的多任務程序
  • 建立定製的用戶界面元素

在《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能夠:

  • 在庫裏存儲和接收對象
  • 提供基本的undo/redo
  • 自動驗證屬性值
  • 過濾、分組和優化內存中的數據
  • 用[NSFetchedResultsController]管理表視圖中的結果
  • 支持基於文檔的應用程序

Core Graphics框架幫助你建立圖形

高質量的圖形對於全部的iOS應用程序都是很重要的。在iOS中最簡單且最快捷的建立圖形的方式是使用UIKit框架提供的基於預渲染圖形的視圖和控件,而後讓UIKit和iOS完成繪製。可是當你須要建立複雜的圖形時,Core Graphics則提供了更底層的庫來幫助你。

使用Core Graphics能夠:

  • 建立基於路徑的繪圖
  • 抗鋸齒渲染
  • 添加梯度、圖片和顏色
  • Use coordinate-space transformations.
  • 建立、顯示和分析PDF文檔

Core Animation容許你建立高級的動畫和虛擬效果

UIKit提供創建在Core Animation之上的動畫。若是你須要比UIKit能力更高級的功能,能夠直接使用Core Animation。Core Animation接口包含在Quartz Core框架裏。使用Core Animation能夠建立嵌套的對象,而且能夠對它們操做、旋轉、縮放和轉換。使用Core animation,你能夠建立動態的用戶界面而不用使用更底層的圖形API,如OpenGL ES。

使用Core Animation能夠:

  • 建立定製動畫
  • 添加定時函數和圖形
  • 支持幀動畫
  • Specify graphical layout constraints.
  • Group multiple-layer changes into anatomic update.

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

OpenGL ES支持2D和3D繪圖,Apple的OpenGL ES實現經過硬件提供了高速的全屏遊戲式的應用程序。

使用OpenGL ES能夠:

  • 建立2D和3D圖形
  • 建立更復雜的圖形,好比數據虛擬化、模擬飛行,或者視頻遊戲
  • 訪問底層圖形設備

根據須要向項目中添加其它框架

還有許多框架能夠添加到你的程序裏。當你決定使用一個框架但項目裏卻沒有引入這個框架時,你就須要將它加入到你的項目裏。

將別的框架添加到工程裏

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 框架參考
相關文章
相關標籤/搜索