iOS開發常用框架總覽!

iOS_小賢發表於2019-03-13

框架是一個目錄,這個目錄包含了共享庫,訪問共享庫裡程式碼的標頭檔案,和其它的圖片和聲音的資原始檔。一個共享庫定義的方法或函式可以被應用程式呼叫。

IOS提供了很多你可以在應用程式裡呼叫的框架。要使用一個框架,需要將它新增到你的專案中,你的專案才可以使用它。許多應用程式都使用瞭如Foundation、UIKit、和Core Graphics這些框架。根據你為應用程式選擇的模版,相關的框架就已經被自動引入了。如果預設加入的框架不能滿足你的應用程式的需求,你也可以加入需要的框架。

看看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框架裡許多特性的封裝。

使用Foundation可以:

  • 建立和管理集合,比如陣列和字典
  • 訪問儲存在應用程式裡的圖片和其它資源
  • 建立和管理字串
  • 提交和接收通知
  • 建立日期和時間物件
  • 自動發現IP網路上的裝置
  • 操作URL流
  • 執行非同步程式碼

你已經在《Your First iOS App》裡使用到了Foundation框架。比如,你使用一個NSString類的例項儲存使用者輸入的userName。你還使用了Foundation框架的initWithFormat方法建立了一個字串。

UIKit框架提供建立基於觸控使用者介面的類

所有的iOS應用程式都基於UIKit,你不能是應用程式脫離這個框架。UIKit提供了在螢幕上繪製的機制,捕獲事件,和建立通用使用者介面元素。UIKit也通過管理顯示在螢幕上的元件來組織複雜的專案。

使用UIKit可以:

  • 構建和管理你的使用者介面
  • 捕獲觸控和基於移動的事件
  • 呈現文字和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 框架參考

相關文章