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/