原文网址:http://my.oschina.net/u/1245365/blog/177736

摘要

Foundation中的字典是由 键—值 对组成的数据集合。通过key(键),查找对应的value(值),key通常是字符串对象,也可以是其他任意的对象,但key的值必须是唯一的。此外,字典对象的key 和value的值不可以为空(nil),如果要表示一个空值,可以用NSNull对象

1、NSDictionary (不可变字典)

字典的初始化

//一个key - value

NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"@123"                                           forKey:@"key1"];

//两个以上 key - value

NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2" ,nil];

//用字典为另一个子字典初始化

NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic1]

//新方法赋值

NSDictionary *dic4 = @{@"key1": @"value1",@"key2": @"value2"};

//以为件内容初始化一个字典

NSDictionary *dic5 = [NSDictionary dictionaryWithContentsOfFile:path];

//将字典的key转成一个枚举对象,用于遍历

NSEnumerator *enumerator = [dic4 keyEnumerator];

字典的常用方法

//返回字典键值对的个数

NSInteger count = [dic4 count];

//通过key获取对应的value对象

NSObject *object = [dic2 objectForKey:@"key1"];

//获取所有键的集合

NSArray *keys = [dic3 allKeys];

//获取所有值的集合

NSArray *values = [dic3 allValues];

1、NSMutableDictionary (可变字典,继承自NSDictionary)

可变字典与不可变字典的初始化方法相同,但不能用新方法。下面只介绍常用方法

常用方法

NSMutableDictionary *dic6 = [NSMutableDictionary dictionary];

//像字典中追加一个新的 key5 和 value5

[dic6 setObject:@"value5" forKey:@"key5"];

//像字典中添加整个字典对象

[dic6 addEntriesFromDictionary:dic1];

//将字典6的对象内容设置与字典1的对象内容相同

[dic6 setDictionary:dic1];

//删除键所对应的键值对

[dic6 removeObjectForKey:@"key1"];

//删除数组中的所有key 对应的键值对

NSArray *array = @[@"key1",@"key2",@"key3"];

[dic6 removeObjectsForKeys:array];

//移除字典中的所有对象

[dic6 removeAllObjects];

遍历字典

一般遍历

for (int i = 0; i < [dic3 count]; i++) {

id key = [keys objectAtIndex:i];

id obj = [dic3 objectForKey:key];

NSLog(@"%@",obj);

}

快速遍历

for (id key in dic3) {

id obj = [dic3 objectForKey:key];

NSLog(@"%@",obj);

}

枚举的办法遍历

NSEnumerator *enumerator = [dic4 keyEnumerator];

id key = [enumerator nextObject];

while (key) {

id obj = [dic4 objectForKey:key];

NSLog(@"%@",obj);

key = [enumerator nextObject];

}

【转】NSDictionary以及NSMutableDictionary的用法的更多相关文章

  1. 字典NSDictionary以及NSMutableDictionary的用法总结

    做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便.在Objective-C语言中 词典 ...

  2. NSDictionary、NSMutableDictionary的基本用法

    NSDictionary.NSMutableDictionary的基本用法 1.不可变词典NSDictionary 字典初始化 NSNumber *numObj = [NSNumber numberW ...

  3. (转载)目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结

    文章转载自:http://www.cnblogs.com/wengzilin/archive/2012/03/15/2397712.html 做过Java语言 或者 C语言 开发的朋友应该很清楚 关键 ...

  4. 【转】目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结 -- 不错

    原文网址:http://www.cnblogs.com/wengzilin/archive/2012/03/15/2397712.html 做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字 ...

  5. NSDictionary、NSMutableDictionary基本使用

    郝萌主倾心贡献,尊重作者的劳动成果.请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...

  6. Objective-C语法之NSDictionary和NSMutableDictionary

    Java 有Map,可以把数据以键值对的形式储存起来,取值的时候通过key就可以直接拿到对应的值,方便快捷.在Objective-C语言中,词典就是做这样的事情的,和NSArray一样,一个词典对象也 ...

  7. IOS Intro - NSDictionary and NSMutableDictionary

    NSDictionary.NSMutableDictionary的基本用法 1.不可变词典NSDictionary 字典初始化 NSNumber *numObj = [NSNumber numberW ...

  8. 黑马程序员-NSDictionary和NSMutableDictionary

    NSDictionary和NSMutableDictionary:通过key和value进行对应,进行存储元素,能够方便提取所需的元素.key是不能够重复出现,但是value能够重复出现.NSDict ...

  9. 词典对象 NSDictionary与NSMutableDictionary

    做过Java语言或者 C语言开发的朋友应该很清楚关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便,是一种非常常用的数据结构.在Objecti ...

随机推荐

  1. Unity3d - 初学篇 Event Functions 的 继承 机制

    我们知道Start() Update() 等之类的 事件函数 在Unity 主线程中是依次调用的.至于调用的顺序可以查手册. 由此继承机制也会发生一些改变. 测试一: public class MyT ...

  2. 【设计模式六大原则2】里氏替换原则(Liskov Substitution Principle)

      肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑.其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的. 定义1:如果对 ...

  3. 【hadoop2.6.0】一句话形容mapreduce

    网上看到的: We want to count all the books in the library. You count up shelf #1, I count up shelf #2. Th ...

  4. YUM详解

    用YUM升级软件打开终端,切换到root用户,yum的操作大都须有超级用户的权限.首 先,yum update,这一步是必须的,yum会从服务器的header目录下载rpm的header,放在本地的缓 ...

  5. 256. Paint House

    题目: There are a row of n houses, each house can be painted with one of the three colors: red, blue o ...

  6. C++:运算符重载函数之"++"、"--"、"[ ]"、"=="的应用

    5.2.5 "++"和"--"的重载 对于前缀方式++ob,可以用运算符函数重载为: ob.operator++() //成员函数重载 或 operator++ ...

  7. Restful api测试插件Swagger-UI

    现在多数的项目开发中,网站和移动端都需要进行数据交互和对接,这少不了使用REST编写API接口这种场景.例如我目前的工作,移动端交由了另一团队开发,不同开发小组之间就需要以规范和文档作为标准和协作基础 ...

  8. Hibernate检索方式 分类: SSH框架 2015-07-10 22:10 4人阅读 评论(0) 收藏

    我们在项目应用中对数据进行最多的操作就是查询,数据的查询在所有ORM框架中也占有极其重要的地位.那么,如何利用Hibernate查询数据呢?Hibernate为我们提供了多种数据查询的方式,又称为Hi ...

  9. 使用eclipse的快捷键自动生成的map或者reduce函数的参数中:“org.apache.hadoop.mapreduce.Reducer.Context context”

    今天在测试mapreduce的程序时,就是简单的去重,对照课本上的程序和自己的程序,唯一不同的就是“org.apache.hadoop.mapreduce.Reducer.Context contex ...

  10. S5P4418iNand清空方法

    01连接串口线 02打开Fastboot的Xshell串口插件 03启动开发板 04一启动就输入回车键 05在uboot处停住,输入:mmc erase blk 10000 (mmc erase bo ...