Foundation之於Objective-C就比如Java中SDK類庫之於Java。 ios
這個框架提供了基本的Objective-C的類,最重要的根類,NSObject,它定義了基本的對象行爲。 設計模式
框架包括了各類基本數據類型、集合,操做系統服務的對象的類。Foundation一樣包含了幾種設計模式 app
和機制,以遍設計出更健壯和高效的Objective-C程序。 框架
一:基本的Protocols (相似於Java中的接口。明顯的區別是,Protocols中容許可選實現方法。 iphone
我下面寫的「採納」相似於Java中的實現。 工具
(1)NSObject ,值得注意的是它的名字跟NSObject類同名。 測試
採納了這個協議的類,就能夠被查詢它們的類和父類,能夠跟其餘對象比較。 ui
(2)NSCoding,採納了這個協議的類能夠被編碼和解碼。 編碼
(3)NSCoping,這個協議只定義了一個方法,copyWithZone:,若是一個類支持對象拷貝那麼就須要採納這個協議。 spa
二:基本的類
(1)NSObject ,NSObject類是Objective-C類繼承體系中的根類。
NSObject類採納了NSObject協議。
(2)NSNumber ,它是用於處理基本數據類型的工具類,是NSValue的子類。
它爲標量提供了面向對象的封裝和指針。值得注意的事,從NSNumber中取出的值
應該與存儲的值保持一致。NSNumber會嘗試將存儲的值動態轉換爲所須要的值。
(3) NSString ,對應與Java中的String類。保存的事Unicode字符。
跟Java中的同樣,NSString實例是不可變得。若是須要修改字符串,
你能夠先建立一個NSMutableString(相似Java中的StirngBuilder)而後進行修改。
關於NSString的其餘操做,我會放到其餘的文章中。
(4)NSArray和NSSet,NSMutableArray,
基本對應於Java中的(Array,Set,List)
(5)NSDictionary和NSMutableDictionary。
NSMutableDictionary相似於Java中的Map。NSDictionary則是不可變得Map。
測試實例以下:
01 | void testNSDictionary(){ |
02 | NSDictionary *dicts = @{@"name" : @"banxi1988",@"age":@47}; |
03 | NSLog(@"myInfo:%@",dicts); |
04 | NSMutableDictionary* mutableDicts = [NSMutableDictionary dictionaryWithDictionary:dicts]; |
05 | [mutableDicts setObject:@24 forKey:@"age"]; |
06 | NSLog(@"myInfo:%@",mutableDicts); |
07 | [mutableDicts setObject:@"Haizhen.Li" forKeyedSubscript:@"age"]; |
08 | NSLog(@"myInfo:%@",mutableDicts); |
09 | /* |
10 | 2013-01-12 20:33:41.923 Demo[3529:303] myInfo:{ |
11 | age = 47; |
12 | name = banxi1988; |
13 | } |
14 | 2013-01-12 20:33:41.927 Demo[3529:303] myInfo:{ |
15 | age = 24; |
16 | name = banxi1988; |
17 | } |
18 | 2013-01-12 20:33:41.928 Demo[3529:303] myInfo:{ |
19 | age = "Haizhen.Li"; |
20 | name = banxi1988; |
21 | } |
22 | */ |
1.參考:
(1)https://developer.apple.com/library/ios/navigation/#section=Frameworks&topic=Foundation
(2)http://mobile.tutsplus.com/tutorials/iphone/exploring-the-foundation-framework/