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”
}