本文是《Sunvey the Major Framworks》一文的翻譯
框架是一個目錄,這個目錄包含了共享庫,訪問共享庫裏代碼的頭文件,和其它的圖片和聲音的資源文件。一個共享庫定義的方法或函數可以被應用程序調用。
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內容
- 優化你的多任務程序
- 創建定製的用戶界面元素
你需要知道的其它重要的框架
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按鈕
框架的完整列表,或者想更深入的瞭解它們,請參考iOS Technology Overview