層次
Foundation類層次的根是NSObject類,它(和NSObject及NSCopying協定一起)定義了基本的對象屬性和行為。
Foundation框架的剩餘部分由幾組相互關聯的類和一些獨立的類組成。有一些代表基本數據類型的類,如字元串、位元組數組、用於存儲其它對象的集合類;一些代表系統信息的類,如日期類;還有一些代表系統實體的類,比如連線埠、執行緒、和進程。圖1、圖2、和圖3所示的類層次描述了這些類的邏輯分組及其繼承關係。
Founddation第一部分
Foundation類層次Foundation Continued
Founddation第二部分
Nsproty
Founddation第三部分
上面這些框圖按照如下範疇(和下文提到的其它關聯關係)將Foundation框架中的類進行邏輯分類:
值對象。值對象封裝了各種類型的數據,提供對數據進行訪問和各種操作的途徑。因為它們都是對象,所以可以對它們(和它們包含的數值)進行歸檔和分發。NSData類為位元組流提供面向對象的存儲空間,而NSValue和NSNumber類則為簡單的標量值數組提供面向對象的存儲空間。NSDate、NSCalendarDate、NSTimeZone、NSCalendar、NSDateComponents、和NSLocale類提供代表時間、日期、日曆、和地域設定(locales)的對象。它們包含的方法可以用於計算日期和時間差、以各種格式顯示日期和時間、以及調整世界上各個位置時間和日期。
字元串。NSString是另一類值對象,負責為以null結尾的、具有特定編碼的位元組數組提供面向對象的存儲空間。它支持對UTF-16、UTF-8、MacRoman、和很多其它編碼的字元串之間進行轉換。NSString還提供對字元串進行檢索、組合、和比較、以及對檔案系統路徑進行操作的方法。您可以用NSScanner對象來對NSString對象中的數字和詞進行解析。NSCharacterSet(顯示在框圖中的集合類部分)代表可以在各個NSString和NSScanner方法中使用的一組字元。
集合。集合是以一定的順序存儲和訪問其它對象(通常是數值)的對象。NSArray的索引從0開始,NSDictionary使用鍵-值對,而NSSet則負責對象的隨機存儲(NSCountedSet類使集合具有唯一標識)。通過NSEnumerator對象,您可以訪問一個集合中的元素序列。集合對象是屬性列表的必要元素,和其它所有對象一樣,它也可以被歸檔和分發。
作業系統服務。 很多Foundation類為訪問各種底層的作業系統服務提供便利,同時又把開發者從作業系統的具體特性隔離開來。舉例來說,您可以通過NSProcessInfo類查詢應用程式運行的環境;通過NSHost類得到主機系統在網路中的名稱和地址;通過NSTimer對象,您可以按指定的時間間隔向其它對象傳送訊息;NSRunLoop可以幫您管理應用程式或其它類型程式的輸入源;而NSUserDefaults則為存儲全局(主機級別)和用戶級預設值(預置)的系統資料庫提供編程接口。
檔案系統和URL。 NSFileManager為諸如創建、重命名、刪除、和移動檔案這樣的檔案操作提供統一的接口。NSFileHandle則可以進行較為底層的檔案操作(比如檔案內查找操作)。NSBundle可以尋找存儲在程式包中的資源,可以動態裝載某些資源(比如nib檔案和代碼)。您可以用NSURL和NSURLHandle類來表示、訪問、和管理源於URL的數據。
進程間通訊。 這個範疇中的大部分類代表不同的系統連線埠、套接字、和名字伺服器,對實現底層的IPC很有用。NSPipe代表一個BSD管道,即一種進程間的單向通訊通道。
執行緒和子任務。 NSThread類使您可以創建多執行緒的程式,而各種鎖(lock)類則為彼此競爭的執行緒在訪問進程資源時提供各種控制機制。通過NSTask,您的程式可以分出一個子進程來執行其它工作或進行進度監控。
歸檔和序列化。這個範疇中的類使對象分發和持久保留成為可能。NSCoder及其子類和NSCoding協定一起,可以以獨立於架構的方式來表示對象中包含的數據,可以將類信息和數據一起存儲。
表達式和條件判斷。條件判斷類,即NSPredicate、NSCompoundPredicate、和NSComparisonPredicate類,負責對獲取或過濾對象的邏輯約束條件進行封裝。NSExpression對象則代表條件判斷中的表達式。
Spotlight查詢。NSMetadataItem、NSMetadataQuery和相關的查詢類對檔案系統的元數據進行封裝,使元數據的查詢成為可能。
Objective-C語言服務。NSException和NSAssertionHandler類為代碼中的斷言和例外處理提供了面向對象的封裝。NSInvocation對象是Objective-C訊息的靜態表示,您的程式可以對它存儲,並在之後用於激活另一個對象的訊息。undo管理器(NSUndoManager)和分散式對象(Distributed Objects)系統都用到了這種對象。NSMethodSignature對象負責記錄方法的類型信息,可以用於信息的推送。NSClassDescription則是一個抽象類,用於定義和查詢類的關係和屬性。
腳本。這個範疇中的類可以幫助您實現對AppleScript腳本和Apple Event命令的支持。
分散式對象。 您可以通過分散式對象類來進行同一台電腦或一個網路中的不同電腦上的進程間通訊。其中的兩個類-NSDistantObject和NSProtocolChecker的根類(NSProxy)和Cocoa其它部分的根類不同。
網路。NSNetService和NSNetServiceBrowser類支持稱為Bonjour的零配置網路架構。Bonjour是在IP網路上發布和瀏覽服務的強大系統。