NSDictionary、NSMutableDictionary的基本用法
2015-08-13 12:01
417 查看
NSDictionary、NSMutableDictionary的基本用法
1.不可变词典NSDictionary字典初始化
NSNumber *numObj = [NSNumber numberWithInt:100];
以一个元素初始化
NSDictionary *dic = [NSDictionary dictionaryWithObject:numObj forKey:@"key"];
初始化两个元素
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:numObj, @"valueKey", numObj2, @"value2",nil];
初始化新字典,新字典包含otherDic
NSDictionary *dic = [NSDictionary dictionaryWithDictionary:otherDic];
以文件内容初始化字典
NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path];
常用方法
获取字典数量
NSInteger count = [dic count];
通过key获取对应的value对象
NSObject *valueObj = [dic objectForKey:@"key"];
将字典的key转成枚举对象,用于遍历
NSEnumerator *enumerator = [dic keyEnumerator];
获取所有键的集合
NSArray *keys = [dic allKeys];
获取所有值的集合
NSArray *values = [dic allValues];
2.可变数组NSMutableDictionary
初始化一个空的可变字典
NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil];
NSDictionary *dic3 = [NSDictionary dictionaryWithObject:@"v3" forKey:@"key3"];
向字典2对象中添加整个字典对象3
[dic2 addEntriesFromDictionary:dic3];
向字典2对象中最佳一个新的key3和value3
[dic2 setValue:@"value3" forKey:@"key3"];
初始化一个空的可变字典
NSMutableDictionary *dic1 = [NSMutableDictionary dictionary];
将空字典1对象内容设置与字典2对象相同
[dic1 setDictionary:dic2];
将字典中key1对应的值删除
[dic1 removeObjectForKey@"key1"];
NSArray *array = [NSArray arrayWithObjects:@"key1", nil];
根据指定的数组(key)移除字典1的内容
[dic2 removeObjectsForKeys:array];
移除字典所有对象
[dic1 removeAllObjects];
遍历字典
快速枚举
for (id key in dic){
id obj = [dic objectForKey:key];
NSLog(@"%@", obj);
}
一般枚举
NSArray *keys = [dic allKeys];
inr length = [keys count];
for (int i = 0; i < length;i++){
id key = [keys objectAtIndex:i];
id obj = [dic objectForKey:key];
NSLog(@"%@", obj);
}
通过枚举类型枚举
NSEnumerator *enumerator = [dic keyEnumerator];
id key = [enumerator nextObject];
while (key) {
id obj = [dic objectForKey:key];
NSLog(@"%@", obj);
key = [enumerator nextObject];
}
相关文章推荐
- Linux基础系列(三)Linux系统文件和目录重要知识
- hdu1870愚人节的礼物之天呐你们为什么要骗我用栈才能过。。。大水题。。。
- 开发板sqlite数据库的搭建
- Win10 Mobile预览版10512:安卓子系统被严重破坏 键盘输入法无法弹出
- Java 删除文件或文件夹
- PHP 类中的静态变量的继承
- 面向对象和面向组件的区别
- SSH框架的应用介绍(spring、struts、hibernate) ---阿冬专栏
- android 应用自身检测版本并下载
- 如何停止处于stopping状态的windows服务
- WAP
- Thor:思科的开源免专利视频编解码器项目
- java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和联系
- 优势与应用:再谈CDN镜像加速技术
- JSP页面间的参数传递
- Windows下编译 32位和64位 OpenSSL 2016-04-12
- 计算机超过远程连接数量,可以添加一个技巧
- Pywinauto在Windows Twain Driver自动化测试中的应用研究
- 养老金投资办法已提交国务院 颁布进入倒计时
- **static 的作用以及一些小细节**