Objective-C學習篇05—Foundation架構簡介,foundation架構簡介
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等)、基礎資料型別 (Elementary Data Type)等 |
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,API)文檔
2. 直接查看類的標頭檔
Option + 滑鼠左鍵 進入類的 API 文檔(初學者)
Command + 左鍵進入類的標頭檔 通過查看標頭檔的方式,適合對這個類有一定瞭解的同學.
3. 查看API文檔的時候主要注意哪些關鍵字
Inherits from 繼承自哪個類
Conforms to 表示這個類遵循哪些協議
Framework 這個類定義在那個架構下的
Availability 這個類從iOS的哪個版本後開始支援這個類
Declared in 聲明