1。NSArray有两个限制,首先它只能存储objective-c的对象,其次,它也不能存储nil(对象的0值或null值)因为结束时用nil,代表列表结束。
NSArray *array ;
array=[NSArrayarrayWithObjects:@"one",@"two",@"three",nil];
for (int i=0;i<[arraycount]; i++) {
NSLog(@"index %d has %@",i,[array objectAtIndex:i ]);
}
NSString *string =@"oop:ack:bork:greeble:ponies";
NSArray *chunks=[stringcomponentsSeparatedByString:@":"];//通过:把字符串分解后放入数组中
string =[chunkscomponentsJoinedByString:@":-)"];
NSLog(@"%@",string);
NSArray也是不可变对象,同样它也有一个子类时可变的NSMutableArray。addObject在数组末尾添加对象。
removeObjectAtIndex删除。
2。NSEnumerator
NSMutableArray *array;
array=[NSMutableArrayarrayWithCapacity:17];
for (int i=0; i<4; i++) {
Tire *tire=[Tire new];
[array addObject:tire];
}
NSEnumerator *enumerator;
enumerator= [arrayobjectEnumerator];//向数组请求枚举器
从后向前浏览集合,reverseObjectEnumerator方法
id thingie;
while (thingie=[enumerator nextObject]) {
NSLog(@"I found %@",thingie);
}
快速枚举 类似c#里面的---foreach
for (NSString *stringin array) {
NSLog(@"I found %@",string);
}
遍历数组3中方式,通过索引,使用NSEnumerator 和快速枚举。
3。NSDictionary
dictionaryWithObjectAndKeys创建字典 ,并且以nil作为终止符。
Tire *t1=[Tirenew];
Tire *t2=[Tire new];
Tire *t3=[Tire new];
Tire *t4=[Tire new];
NSDictionary *tires;
tires=[NSDictionarydictionaryWithObjectsAndKeys:t1,@"front-left",t2,@"front-right",t3,@"back-left",t4,@"back-right",nil];
Tire *tire=[tires objectForKey: @"back-right"]; //objectForKey 获取字典中的值NSMutableDictionary 可用dictionaryWithCapacity方法创建可变字典。
还有一种方法创建字典就是用setObject: forkey:
NSMutableDictionary *tires;
tires =[NSMutableDictionarydictionary];
[tires setObject: t1 forkey:@"front-left"];
[tires setObject: t2 forKey:@"front-right"];
[tires setObject: t3 forkey:@"back-left"];
[tires setObject: t4 forKey:@"back-right"];//向字典添加元素。
字典删除removeObjectForKey:
[tiresremoveObjectForKey:@"back-left"];//从字典中删除。
NSArray和NSDictionary只能存储对象,不能直接存储刃虎基本类型的数据。
4。NSValue可以包装任意值。
5。NSNumber就是将基本数据类型封装成对象。有点像C#里面的装箱和拆箱。
6。NSNull