【转】NSDictionary以及NSMutableDictionary的用法
原文网址:http://my.oschina.net/u/1245365/blog/177736
摘要
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的用法的更多相关文章
- 字典NSDictionary以及NSMutableDictionary的用法总结
做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便.在Objective-C语言中 词典 ...
- NSDictionary、NSMutableDictionary的基本用法
NSDictionary.NSMutableDictionary的基本用法 1.不可变词典NSDictionary 字典初始化 NSNumber *numObj = [NSNumber numberW ...
- (转载)目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结
文章转载自:http://www.cnblogs.com/wengzilin/archive/2012/03/15/2397712.html 做过Java语言 或者 C语言 开发的朋友应该很清楚 关键 ...
- 【转】目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结 -- 不错
原文网址:http://www.cnblogs.com/wengzilin/archive/2012/03/15/2397712.html 做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字 ...
- NSDictionary、NSMutableDictionary基本使用
郝萌主倾心贡献,尊重作者的劳动成果.请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...
- Objective-C语法之NSDictionary和NSMutableDictionary
Java 有Map,可以把数据以键值对的形式储存起来,取值的时候通过key就可以直接拿到对应的值,方便快捷.在Objective-C语言中,词典就是做这样的事情的,和NSArray一样,一个词典对象也 ...
- IOS Intro - NSDictionary and NSMutableDictionary
NSDictionary.NSMutableDictionary的基本用法 1.不可变词典NSDictionary 字典初始化 NSNumber *numObj = [NSNumber numberW ...
- 黑马程序员-NSDictionary和NSMutableDictionary
NSDictionary和NSMutableDictionary:通过key和value进行对应,进行存储元素,能够方便提取所需的元素.key是不能够重复出现,但是value能够重复出现.NSDict ...
- 词典对象 NSDictionary与NSMutableDictionary
做过Java语言或者 C语言开发的朋友应该很清楚关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便,是一种非常常用的数据结构.在Objecti ...
随机推荐
- 架构探险——从零开始写Java Web框架》第二章照作
沉下来慢慢看实现了. 越来越觉得可以和DJANGO作对比. package org.smart4j.chapter2.model; /** * Created by sahara on 2016/3/ ...
- ElasticSearch小操之Marvel,Sense
慢慢弄弄,说不好马上就要用呢,,, 嘿嘿 参考网址: http://es.xiaoleilu.com/ Elasticsearch 权威指南(中文版) 阅读地址:Elasticsearch权威指南(中 ...
- JavaC 编译目录下所有的UTF-8编码的java文件
javac -encoding UTF-8 *.java
- JMeterPluginCMD命令行工具使用详解
MeterPluginCMD命令行工具生成png图片和csv统计文件 Jmeter是个纯java的开源的轻量级性能测试工具,功能强大.因为是轻量级的,与loadrunner相比,报告统计的相对较少.不 ...
- mysql InnoDB 索引小记
0.索引结构 1).MyISAM与InnoDB索引结构比较,如下: 2).MyISAM的索引结构 主键索引和二级索引结构很像,叶子存储的都是索引以及数据存储的物理地址,其他节点存储的仅仅是索引信息.其 ...
- linux网络配置、环境变量以及JDK安装(CentOS 6.5)
由于需要搭建hadoop平台,但是苦于没有现成可用的linux服务器,只好自己下载了CentOS 6.5从头装起,安装过程中遇到了很多问题,比如网络配置.时钟同步.环境变量配置.以及各种服务的启停,还 ...
- lintcode:Add Binary 二进制求和
题目: 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 样例 a = 11 b = 1 返回 100 解题: 和求两个链表的和很类似 考虑进位,考虑最后一项的进位 0+0 = 0 不 ...
- python3.0与2.x之间的区别
python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...
- redhat 安装telnet服务
系统默认不安装telnet服务的,所有要安装的话,可以加载redhat 光盘.我的操作是在VM上完成的 vm加载系统光盘:设备状态选择已连接,ISO映像文件选择完整的镜像文件路径,例如: D:\sof ...
- js中鼠标滚轮事件详解
js中鼠标滚轮事件详解 (以下内容部分内容参考了http://adomas.org/javascript-mouse-wheel/ ) 之前js 仿Photoshop鼠标滚轮控制输入框取值中已使用 ...