容器类对象:枚举 NSEnumerator、字典

容器类对象:枚举 NSEnumerator、字典,第1张

概述一、枚举:NSEnumerator 依附于集合类(NSArray,NSSet,NSDictionary),没有用来创建实例的接口。 NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项。 对可变数组进行枚举 *** 作时,不能通过添加或删除对象这类方式来改变数组容器。 创建枚举:向容器类对象请求枚举器 -(NSEnumerato

一、枚举: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、字典所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1056447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存