用于收集CoCoa对象的集合即有关Objective-C数组的操作
2011-12-28 16:29 张智清 阅读(737) 评论(1) 编辑 收藏 举报Foundation Framework框架中用于收集CoCoa对象的三种集合:
- NSArray 数组 用于对象有序集合
- NSSet 集合 用于对象无序集合
- NSDictionary 字典 用于键值(Key/Value)映射
以上三种集合类是不可变的(一旦初始化后,就不能改变)。因此对应的另有三种可变集合类:NSMutableArray、NSMutableSet、NSMutableDictionary。所有这些(六大)集合类都只能收集CoCoa对象(NSObject对象)而已。
NSArray
基本方法:
+ (id)arrayWithObjects:(id)firstObject,...,nil; //可由一个个数据项创建一个自动释放的NSArray
- (int)count; //得到array中的对象个数
- (id)objectAtIndex:(int)index; //获取索引为index的对象
- (BOOL)containsObject:(id)anObject; //当anObject出现在array中,则返回YES
- (unsigned)indexOfObject:(id)anObject; //查找array中anObject,并返回其最小索引值。没找到返回NSNotFound。
- (void)makeObjectsPerformSelector:(SEL)aSelector;
- (NSArray *)sortedArrayUsingSelector:(SEL)aSelector;
- (id)lastObject; //得到array中最后一个对象。如果array中没有任何对象存在,则返回nil。
NSSet
基本方法:
+ setWithObjects:(id)firstObject,...,nil;
- (int)count;
- (BOOL)containsObject:(id)anObject;
- (id)anyObject;
- (void)makeObjectsPerformSelector:(SEL)aSelector;
- (id)member:(id)anObject;
NSDictionary
一个NSDictionary对象就是Key/Value对的集合。Key是字符串(NSString),Value是对象指针。
Key在整个NSDictionary对象中是唯一的。通过方法objectForKey:可以获得对应于某个Key键的一个或多个Value值。NSDictionary在创建时,其中所有的Key与其对应的Value都是存在并一一对应。
基本方法:
+ dictionaryWithObjectsAndKeys:(id)firstObject,...,nil; //参数是一个key,一个值。成双出现。
- (int)count; //返回有多少对Key/Value
- (id)objectForKey:(id)Key; //返回此Key相关联的Value。没有则返回nil。
- (NSArray *)allKeys //返回一个包含所有Key的数组
- (NSArray *)allValues; //返回一个包含所有Value的数组
- (NSEnumerator *)keyEnumerator; //从一个dictionary中得到一个Key的迭代器。
如列举所有的Key/Value对
NSEnumerator *enum = [myDictionary keyEnumerator];
for(NSString *s in enum) {
NSLog(@"key is %@, value is %@",s,[myDictionary objectForKey:s]);
}
注意:NSArray也有一个类似方法得到array的成员迭代器,就是objectEnumerator方法。