OC 学习笔记6 NSDictionary

你说的曾经没有我的故事 提交于 2019-11-29 16:37:07

OC 学习笔记6 NSDictionary

字典对象

字典(dictionary)是一些元素的集合。每个元素有一个称作key 的域,不同元素的key 各不相同。有关字典的操作有:插入具有给定关键字值的元素、在字典中寻找具有给定关键字值的元素、删除具有给定关键字值的元素。 --百度百科

字典对象就是形如:*dict = @{@“Alice”: @“2341”, @“Beth”: @“9102”,@“Cecil”?“3258”};
这样的元素集合。

它与数组不同之处是:
数组元素的存储是连续的;
而字典的存储是分散的。

字典的创建

1、创建只有单个键值对的字典

NSDictionary *a = [NSDictionary dictionaryWithObject:@"value1" forKey:@"key1"];
NSLog(@"%@",a);

输出结果为: key1 = value1

2、创建只有多个键值对的字典

//通过数组对象来创建字典
NSDictionary *a = [NSDictionary dictionaryWithObjects:b forKeys:c];
NSArray *b = [NSArray arrayWithObjects:@"value1",@"value2",nil];
NSArray *c = [NSArray arrayWithObjects:@"key1",@"key2",nil];

//通过dictionaryWithObjectsAndKeys函数创建
NSDictionary *a = [NSDictionary dictionaryWithObjectsAndKeys:
@"value1",@"key1",
@"value2",@"key2",
nil];

//直接创建字典
NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}
//注意:直接创建的键值对位置与前面用函数创建的键值对位置是不同的

判断键值对数目

运用count函数

NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}

int count = (int)[a count];
NSLog(@"%d",count);

答案是:2。

查找/得到值(value),键(key)

1、通过单个键,查找单个值。

NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}

NSString *value = [a valueForKey:@"key1"];
NSString *value = [a objectForKey:@"key1"];
//2个方法一样
NSLog(@"%@",value);

答案是:{
value1
}

2、查找所有值(键)。

NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}

NSArray *all = [a allValues];
//键函数为:allKeys
NSLog(@"%@",all);

答案是:{
value1,
value2
}

3、通过多个键,查找多个值。

NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}

NSArray *arr = [a objectsForKeys:[NSArray arrayWithObjects:@"key1",@"key2",@"key3",nil]
notFoundMarker:@"not found"];       
//若没有找到对应的值,则返回这个对象
NSLog(@"%@",arr);

答案是:{
value1,
value2,
“not found”
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!