原文网址: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. OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法

    一:NSArray 和NSMutableArray 1: NSArray:不可变数组 NSArray是OC中使用的数组,只能用来存放OC对象,不能存放非OC对象如基本数据类型 它使不可变的,一旦初始化 ...

  2. 目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结

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

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

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

  4. NSDictionary、NSMutableDictionary基本使用

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

  5. [Objective-C]OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary)

    一:字典的基本概念 Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样. 通过key(键) ...

  6. NSDictionary和NSMutableDictionary good

    NSDictionary和NSMutableDictionary 2010-12-20 09:14 914人阅读 评论(0) 收藏 举报 2)NSNull NSNull大概是Cocoa里最简单的类了, ...

  7. 词典对象 NSDictionary与NSMutableDictionary

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

  8. IOS基础之NSFounation框架的NSDictionary,NSMutableDictionary的使用

    IOS基础之NSFounation框架的NSDictionary,NSMutableDictionary的使用 // // main.m // Day11-NSFoudation框架 // // Cr ...

  9. IOS学习笔记二十一(NSDictionary、NSMutableDictionary)

    1.NSDictionary.NSMutableDictionary 可以理解为java里面的map,一个key对应一个value,key不可以重复 NSDictionary不可变,NSMutable ...

最新文章

  1. ssh框架实现数据库_自顶向下介绍SSH及其如何实现安全的数据共享
  2. 数据统计之日活跃用户统计
  3. java多线程3.设计线程安全类
  4. 通过IHS(IBM HTTP SERVER)转发WAS(WEBSPHERE)应用的小问题
  5. 解决方案 | python安装wordfreq库
  6. 激光摄像机的原理及应用
  7. HTML+CSS+JS实现 ❤️卡通人物吃水果游戏❤️
  8. MySQL:MySQL基础(一)
  9. delphi中move函数的用法 转
  10. matlab字符串操作总结
  11. 云世界,一切如梦幻,数据也玩虚拟化。 SQL Server 2019 新特性系列一:数据虚拟化
  12. .net core 3.1 mysql_.net core3.1 MVC使用sqlsugar方式操作mysql数据库
  13. alchemy的Box2D版本
  14. 1188 最大公约数之和 V2
  15. 南宁出租车绿灯表示有客,红灯表示空车
  16. python运维开发_python运维开发
  17. 我学过的一些PS基本操作
  18. 字符编码那些事--彻底理解掌握编码知识
  19. 软考中级软件设计师基础整理(1.计算机组成与体系结构)
  20. python做一个本地搜索工具_SecretFinder:一款基于Python脚本的JavaScript敏感信息搜索工具...

热门文章

  1. python毕业设计论文-25 行 Python 代码毕业设计实现人脸识别
  2. python可以做什么工作好-Python入门后,想要从事自由职业可以做哪方面工作?
  3. php 怎么获取meta标签,php – 通过jQuery获取META描述
  4. 网站如何获得优质链接
  5. SPOJ - PHRASES Relevant Phrases of Annihilation —— 后缀数组 出现于所有字符串中两次且不重叠的最长公共子串...
  6. Spring配置中context:annotation-config VS context:component-scan
  7. webpack vue app.js自动注入页面.为app.js增加随机参数
  8. CentOS 7 更新软件源和系统
  9. 机器学习一 -- 什么是监督学习和无监督学习?
  10. LeetCode--Excel Sheet Column Number