无锡市新区建设环保局网站,辽宁教育网站建设费用,模板网站更改,建设网站需要多少钱济南兴田德润地址做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧#xff0c;它可以将数据以键值对儿的形式储存起来#xff0c;取值的时候通过KEY就可以直接拿到对应的值#xff0c;非常方便。在Objective-C语言中 词典对象就是做这个事情的#xff0c;不过在同一个词典对象中…做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧它可以将数据以键值对儿的形式储存起来取值的时候通过KEY就可以直接拿到对应的值非常方便。在Objective-C语言中 词典对象就是做这个事情的不过在同一个词典对象中可以保存多个不同类型的数据不像Java与C 只能保存声明的相同类型的数据它的关键字为NSDictionary与NSMutableDictionary。阅读过我之前文章的朋友应该从关键字的 结构就可以看出这两个的区别。很明显前者为不可变词典或者为可变词典。 NSDictionary *dict; for(NSString * akey in dict) { //........ }很好用 1.创建不可变词典 [NSDictionary dictionaryWithObjectsAndKeys:..] : 使用键值对儿直接创建词典对象结尾必需使用nil标志结束。 [NSDictionary initWithObjectsAndKeys:..] :使用键值对儿初始化词典对象结尾必需使用nil标志结束。 [dictionary count]: 得到词典的长度单位。 [dictionary keyEnumerator]: 将词典的所有KEY储存在NSEnumerator中NSEnumerator很像Java语言 中的迭代器使用快速枚举可以遍历词典中所有储存KEY值。 [dictionary objectEnumerator]: 将词典的所有value储存在NSEnumerator中,用法和上面差不多可用来遍历KEY对应储存的Value值。 [dictionary objectForKey:key]: 通过传入KEY对象可以拿到当前KEY对应储存的值。 #import UIKit/UIKit.h#import MyClass.hint main(int argc, char *argv[]){ NSAutoreleasePool *pool [[NSAutoreleasePool alloc] init]; //添加我们的测试代码 NSDictionary *dictionary [NSDictionary dictionaryWithObjectsAndKeys:雨松MOMO,name,15810463139,number, nil]; //得到词典的数量 int count [dictionary count]; NSLog(词典的数量为 %d,count); //得到词典中所有KEY值 NSEnumerator * enumeratorKey [dictionary keyEnumerator]; //快速枚举遍历所有KEY的值 for (NSObject *object in enumeratorKey) { NSLog(遍历KEY的值: %,object); } //得到词典中所有Value值 NSEnumerator * enumeratorValue [dictionary objectEnumerator]; //快速枚举遍历所有Value的值 for (NSObject *object in enumeratorValue) { NSLog(遍历Value的值: %,object); } //通过KEY找到value NSObject *object [dictionary objectForKey:name]; if (object ! nil) { NSLog(通过KEY找到的value是: %,object); } int retVal UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal;} 2.创建可变词典对象 NSMutableDictionary 是NSDictionary的子类所以继承了NSDictionary的方法。 [NSMutableDictionary dictionaryWithCapacity:10] : 创建一个可变词典初始指定它的长度为10.动态的添加数据如果超过10这个词典长度会自动增加所以不用担心数组越界。推荐用这种方式 [NSMutableDictionary initWithCapacity:10] :只是初始化一个词典的长度为10。 [dictionary setObject:雨松MOMO forKey:name] :向可变的词典动态的添加数据 这里的key是name 值是雨松MOMO。如果词典中存在这个KEY的数据则直接替换这个KEY的值。易混的地方慎重 [dictionary removeAllObjects..] : 删除掉词典中的所有数据。 [dictionary removeObjectForKey..] :删除掉词典中指定KEY的数据 。 #import UIKit/UIKit.h#import MyClass.hint main(int argc, char *argv[]){ NSAutoreleasePool *pool [[NSAutoreleasePool alloc] init]; //添加我们的测试代码 //创建词典对象初始化长度为10 NSMutableDictionary *dictionary [NSMutableDictionary dictionaryWithCapacity:10]; //向词典中动态添加数据 [dictionary setObject:雨松MOMO forKey:name]; [dictionary setObject:15810463139 forKey:number]; //通过KEY找到value NSObject *object [dictionary objectForKey:name]; if (object ! nil) { NSLog(通过KEY找到的value是: %,object); } int retVal UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal;} 词典类的存在就是为了解决在大量数据中查找方便因为它是通过key直接找到value所以速度很快避免一个个的遍历寻找造成的效率低下善用字典类会帮你的程序提速。 文章出处http://blog.csdn.net/xys289187120/article/details/682373转载于:https://www.cnblogs.com/xinshijie/p/4320331.html