NSDictionary、NSMutableDictionary的基本用法
2015-12-31 12:31
531 查看
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];
}
字典初始化
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];
}
相关文章推荐
- Objective-C的内省(Introspection)用法小结
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- Objective-C中NSNumber与NSDictionary的用法简介
- Objective-C中NSLog输出格式大全
- 全面解析Objective-C中的block代码块的使用
- Swift调用Objective-C编写的API实例
- Swift、Objective-C、Cocoa混合编程设置指南
- Objective-c代码如何移植为Swift代码 Objective-c代码转移到Swift过程介绍
- Swift调用Objective-C代码
- 以实例讲解Objective-C中的KVO与KVC机制
- objective-c中生成随机数的方法
- 在Swift中使用Objective-C编写类、继承Objective-C类
- Swift能代替Objective-C吗?
- Objective-C 消息传递机制详解
- 在一个项目中同时使用Swift和Objective-C代码混合编程的方法
- vm安装mac os x 10.7 lion
- objective-c(一)
- objective-c(二)
- objective-c(三)