您的位置:首页 > 其它

[oc学习日记]字典

2015-06-01 19:49 369 查看
//字典的创建
NSDictionary *d1 = [NSDictionary dictionary];
//将创建的字典的内容设置为制定的文件的内容
NSString *path = @"";//文件路径
NSDictionary *d2 = [NSDictionary dictionaryWithContentsOfFile:path];
//创建具有一个键值的字典
NSDictionary *d3 = [NSDictionary dictionaryWithObject:@"s" forKey:@"s"];
//创建具有多个键值的字典  键值对必需对应
//值在前  键在后
NSDictionary *d4 = [NSDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",
@"ss",@"1",
nil];

//利用数组创建字典
NSArray *key = @[@"2",@"3",@"4"];
NSArray *obj = @[@"ss",@"ff",@"gg"];
NSDictionary *d5 = [NSDictionary dictionaryWithObjects:obj forKeys:key];
//便捷方式
//键在前 值在后
NSDictionary *d6 = @{
@"2":@"d",
@"3":@"d"};

//init初始化
//将初始化的字典内容设置为指定文件内容
NSDictionary *dd = [[NSDictionary alloc]initWithContentsOfFile:path];
//初始化具有多个键-值的字典(利用数组)
NSDictionary *dd1 = [[NSDictionary alloc]initWithObjects:obj forKeys:key];
//初始化具有多个键-值的字典
NSDictionary *dd2 = [[NSDictionary alloc]initWithObjectsAndKeys:
@"ss",@"2",
@"ss",@"1", nil];

//字典基本操作
//字典是无序的  键不可以重复 值可以重复
//返回所有键
NSLog(@"%@",[dd2 allKeys]);
//返回所有值
NSLog(@"%@",[dd2 allValues]);
//返回所有值对应的键
NSLog(@"%@",[dd2 allKeysForObject:@"ss"]);
//返回对应键的值  最常见 最重要
NSLog(@"%@",[dd2 objectForKey:@"ss"]);
//键值对
NSLog(@"%zi",dd2.count);

//不可变字典
//创建
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
//分配空间
NSMutableDictionary *dic1 = [[NSMutableDictionary alloc]initWithCapacity:10];
//创建并赋值
NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",
@"ss",@"1", nil];
//添加键值对
[dic2 setObject:@"s" forKey:@"sdads"];
//删除所有键值对
[dic2 removeAllObjects];
//删除指定键对应的键值对
[dic2 removeObjectForKey:@"sd"];

//字典的遍历
//快速遍历
for (id key in dic2) {
NSLog(@"%@ = %@",key,[dic2 objectForKey:key]);
}
//代码块遍历
[dic2 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"%@ %@",key,obj);
}];
//迭代器遍历
//可以输出键和值
NSEnumerator *en = [dic2 keyEnumerator];//将所有键装入数组
id key2 = nil;
while (key2 = [en nextObject]) {
NSLog(@"%@ %@",key2,[dic2 objectForKey:key2]);
}
NSEnumerator *en1 = [dic2 objectEnumerator];//将所有值装入数组
//只可以输出值
id obj3 = nil;
while (obj3 = [en1 nextObject]) {
NSLog(@"%@", obj);
}

//键给空值会异常   值给控制就是结束标志


补充一点:

如果将自定义的类对象封装进字典

可以用setValuesForKeysWithDictionary方法对对象属性进行赋值,但是封装进字典的键一定要和类中的属性名相同,并且数量不能超过类中的属性数量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: