OC视频笔记-4
来源:互联网 发布:微博软件下载 编辑:程序博客网 时间:2024/05/16 03:18
字典的基本概念
Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合。正如,我们在字典里查找单词的定义一样。通过Key(键),查找对应Value(值),Key通常是字符串对象,也可以是其他任意类型对象。在一个字典对象中,key的值必须是唯一的。此外,字典对象的键和值不可以为空(nil),如果需要在一个字典对象中表示一个空值,可以使用NSNull对象。
不可变字典-NSDictionary
字典的初始化
集合之中只可以用对象或者实例,而不可以使用普通的数据类型。
字典的常用方法
//获取字典数量
NSInteger count = [dic count];
//通过key获取对应的value对象
NSObject *valueObj = [dic objectForKey:@“key”];
//将字典的key转换为一个枚举对象,用于遍历
NSEnumerator *enumerator = [dic keyEnumerator];
//获取所有键的集合
NSArray *keys = [dic allKeys];
//获取所有值的集合
NSArray *values = [dic allValues];
//遍历数组 遍历性能高
for(NSString *string in array) {
NSLog(@"found %@",string);
}
//当不确定数组元素的类型时,可以选择用id
for(id string in array) {
NSLog(@"found %@",string);
}
/*****************字典的创建*****************/
NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"value" forKey:@"k1"];
NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4", @"v5",@"k5",nil];
NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic1];
NSLog(@"dic1:%@",dic1);
NSLog(@"dic2:%@",dic2);
NSLog(@"dic3:%@",dic3);
/******************可变字典*****************/
NSMutableDictionary *dic5 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil];
NSDictionary *dic6 = [NSDictionary dictionaryWithObject:@"v3" forKey:@"key3"];
//向字典对象5中添加整个字典对象6
[dic5 addEntriesFromDictionary:dic6];
NSLog(@"dic5:%@",dic5);
//向字典5中追加一个新的key3和value3
[dic5 setValue:@"value3" forKey:@"key3"];
NSLog(@"dic5:%@",dic5);
//初始化一个空的可变字典
NSMutableDictionary *dic7 = [NSMutableDictionary dictionary];
//将空字典7的内容设置为与字典5对象相同
[dic7 setDictionary:dic5];
NSLog(@"dic7:%@",dic7);
[dic5 removeObjectForKey:@"key1"];
NSArray *arraya = [NSArray arrayWithObjects:@"key1",nil];
[dic5 removeObjectsForKeys:arraya];
[dic5 removeAllObjects];
遍历字典
1)快速枚举
for(id key in dic){
id obj = [dic objectForKey:key];
NSLog(@“%@“,obj);
}
2)字典的一般的枚举
NSArray *keys = [dic allKeys];
int length = [keys count];
for(int i = 0; i < length; i++) {
id key = [keys objectAtIndex:i];
id obj = [dic objectForKey:key];
NSLog(“%@“,obj);
}
- OC视频笔记-4
- OC视频笔记-1
- OC视频笔记-2
- OC视频笔记-3
- OC视频笔记-3
- OC视频笔记-5
- 黑马视频学习笔记-OC-继承
- 黑马视频学习笔记-OC-多态
- 黑马视频学习笔记-OC-property、synthesize
- 黑马视频学习笔记-OC-分类
- 黑马视频学习笔记-OC-SEL
- 黑马视频学习笔记-OC-protocol
- OC视频笔记-类目和延展
- OC视频笔记-代理设计模式
- OC视频笔记-单例设计模式
- OC视频笔记-键值编码的基本概念
- OC视频笔记4.8(异常处理)
- OC视频笔记(内存管理)
- iOS 绘制图表
- 2014 Multi-University Training Contest 6 Apple Tree(数学题)
- 【2781】二分练习 sdutOJ
- informatica 面试题大全(持续更新)
- HDU 2795 Billboard
- OC视频笔记-4
- Remove Duplicates from Sorted Array II
- 2014 Multi-University Training Contest 6 Fighting the Landlords
- C-C++内存分配
- POJ-1061-青蛙的约会(扩展欧几里得)
- 树状数组区间求和三种模型
- 显示意图激活另外一个activity
- 9个学习Informatica非常好的资源
- fcntl设置FD_CLOEXEC标志作用