一、枚举:NSEnumerator
依附于集合类(NSArray,NSSet,NSDictionary),没有用来创建实例的接口。 NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项。 对可变数组进行枚举 *** 作时,不能通过添加或删除对象这类方式来改变数组容器。创建枚举:向容器类对象请求枚举器
-(NSEnumerator *)objectEnumerator;
代码实例:
NSEnumerator *enumerator; enumerator =[array objectEnumerator];
浏览集合类对象的全部元素
-(ID)nextObject;
代码实例:
NSEnumerator *enumerator; enumerator =[array objectEnumerator]; ID thingIE; while (thingIE = [enumerator nextObject]) { NSLog(@"i found %@",thingIE); }
二、字典NSDictionary
字典就是关键字及其定义的集合,也称散列表或关联数组。
是在给定关键字(常为Nsstring类型的对象)下存储一个数值(任何类型的对象)。
使用键查询的优化存储方式,可立即找出要查询的数据,不需遍历整个数组进行查询。
对于频繁查询和大型数据集来说,使用字典比较数组要快很多。
创建字典:
+ (ID)dictionaryWithObjectsAndKeys:(ID)firstObject,...(可变参)
需提供该字典所需要的全部对象和关键字,因为只有可读属性,只能在初始化的时候进行赋值。
获取字典中的值:
- (ID)objectForKey:(ID)aKey;
三、创建 NSMutableDictionary
向类发送dictionary消息
+ (ID)dictionaryWithCapacity:(NSUInteger)numItems;
仅仅是一个建议,而不是对大小的限制添加元素:
- (voID)setobject:(ID)anObject forKey:(ID)aKey;
若已经存在关键字,则用新值替换原有的值。删除元素:
- (voID)removeObjectForKey:(ID)aKey;
类簇(cu)
注意:
不要创建Nsstring,NSArray,NSDictionary的子类。
在cocoa中,许多类实际上是以类簇的方式实现的,即他们是一群隐藏在通用接口之下的与实现相关的类。
本章总结:
掌握数组的基本 *** 作
掌握可变数组的基本 *** 作
掌握枚举的基本 *** 作
了解快速枚举的基本 *** 作
掌握字典的基本 *** 作
掌握可变字典的基本 *** 作
代码:
#import <Foundation/Foundation.h>@interface Tire : NSObject {}@end@implementation Tire@endint main (int argc,const char * argv[]){ //字符串变数组 Nsstring *string = [[Nsstring alloc]initWithString:@"one,two"]; NSLog(@"string:%@",string); NSArray *array = [string componentsSeparatedByString:@","]; NSLog(@"array:%@",array); [string release]; //数组变字符串 Nsstring *string1 = [array componentsJoinedByString:@","]; NSLog(@"string1:%@",string1); [string1 release]; //枚举 NSEnumerator *enumerator; enumerator =[array objectEnumerator]; ID thingIE; while (thingIE = [enumerator nextObject]) { NSLog(@"i found %@",thingIE); } Tire *tires[4]; for(int i=0;i<4;i++) tires[i] = [Tire new]; //字典 NSDictionary *tire; tire = [NSDictionary dictionaryWithObjectsAndKeys: tires[1],@"1",tires[2],@"2",tires[3],@"3",tires[0],@"4",nil]; //可变字典 NSMutableDictionary *kbdtire; kbdtire = [NSMutableDictionary dictionary];//????? [kbdtire setobject:tires[0] forKey:@"0"];//添加元素 [kbdtire setobject:tires[1] forKey:@"1"]; [kbdtire setobject:tires[2] forKey:@"2"]; [kbdtire setobject:tires[3] forKey:@"3"]; [kbdtire removeObjectForKey:@"0"];//删除元素 return 0;}总结
以上是内存溢出为你收集整理的容器类对象:枚举 NSEnumerator、字典全部内容,希望文章能够帮你解决容器类对象:枚举 NSEnumerator、字典所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)