iOS中所謂的框架,說到底就是一個目錄,iOS提供了很多我們可以在應用程序中調用的框架。許多應用程序都使用了如Foundation、UIKit和Core Graphics這些框架。根據你為應用程序選擇的模版,相關的框架就已經被自動引入了。比如我們在OSX Application下的CommandLineTool創建一個Xcode工程時,系統會幫我們默認引入Foundation 框架: #import <Foundation/Foundation.h>如果默認加入的框架不能滿足你的應用程序的需求,你也可以加入自己需要的框架。要使用一個框架,需要將它添加到你創建的項目中,你的項目才可以使用它。
在我們開發iOS項目時,最主要使用的框架就是Foundation和UIKit框架,Fundation框架為所有的應用程序提供了基礎系統服務,UIKit框架提供了基於用戶界面的類.
iOS常用基礎框架
框架名稱 |
功能 |
Foundation |
提供OC的基礎類(像NSObject,NSString等)、基本數據類型等 |
UIKit |
創建和管理應用程序的用戶界面 |
QuartzCore |
提供動畫特效以及通過硬件進行渲染的能力 |
CoreGraphics |
提供2D繪制的基於C的API |
SystemConfiguration |
檢測當前網絡是否可用和硬件設備狀態 |
AVFoundation |
提供音頻錄制和回放的底層API,同時也負責管理音頻硬件 |
CFNetwork |
訪問和配置網絡,像HTTP、FTP和Bonjour Services |
CoreFoundation |
提供抽象的常用數據類型,如Unicode strings、XML、URL等 |
CoreLocation |
使用GPS和WIFI獲取位置信息 |
GameKit |
為游戲提供網絡功能:點對點互聯和游戲中的語音交流 |
AddressBook |
提供訪問用戶聯系人信息的功能 |
AddressBookUI |
提供一個用戶界面,用於顯示存儲在地址簿中的聯系人信息 |
AudioToolBox |
提供音頻錄制和回放的底層API,同時也負責管理音頻硬件 |
AudioUnit |
提供一個接口,讓我們的應用程序可以對音頻進行處理 |
MapKit |
為應用程序提供內嵌地圖的接口 |
MediaPlayer |
提供播放視頻和音頻的功能 |
MessageUI |
提供視圖控制接口用以處理E-mail和短信 |
OpenGLES |
提供動畫特效以及通過硬件進行渲染的能力 |
StoreKit |
為應用程序提供在程序運行中消費的支持 |
以及常用的第三方開源框架AFNetworking等.
Foundation框架
(截圖左側是部分蘋果官方文檔里的框架, 截圖右側顯示了部分Foundation框架下類的頭文件)
所謂的Foundation.framework框架,就是蘋果把一些我們常用的類封裝到這個框架里面,常見的類主要有NSString,NSDate,NSArray,NSDictionary,NSSet,NSNumber等,OC中的類可分為不可變(immutable)類和可變(mutable)類,不可變類的實例對象稱為不可變對象,指的是創建后不可更改其內容的對象.可變類的實例對象稱為可變對象,指的是創建后能夠改變其內容或狀態的對象.使用Foundation我們可以:
- 創建和管理集合,比如數組和字典
- 訪問存儲在應用程序里的圖片和其它資源
- 創建和管理字符串
- 提交和接收通知
- 創建日期和時間對象
- 自動發現IP網絡上的設備
- 操作URL流
- 執行異步代碼
那么,要學習好系統提供好的類我們可以:
1. 學會使用蘋果官方提供的API(Application Programming Interface,應用程序編程接口)文檔
2. 直接查看類的頭文件
Option + 鼠標左鍵 進入類的 API 文檔(初學者)
Command + 左鍵進入類的頭文件 通過查看頭文件的方式,適合對這個類有一定了解的同學.
3. 查看API文檔的時候主要注意哪些關鍵字
Inherits from 繼承自哪個類
Conforms to 表示這個類遵循哪些協議
Framework 這個類定義在那個框架下的
Availability 這個類從iOS的哪個版本后開始支持這個類
Declared in 聲明