字典:NSDictionary
字典就是键和值的集合,键和值都是对象类型。NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象),放入对象是键值对 key-value。
可以用这个关键字(key)来查找相应的数值(value)。
下面是dictionary的定义及一些操作:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1.创建空字典.因为NSDictionary不能改动,所以下列操作是没有意义的。
NSDictionary *dic = [NSDictionary dictionary];
//2.创建只有一对键值对的字典
//zs----->zhansan; ls------>lisi; mm------->meimei (key---->value)
NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"zhangsan" forKey:@"zs"];
//创建多对键值的字典
NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",@"value3",@"key3", nil];
//注:key和Value必须是对象类型
//以%@输出字典,控制台输出一对{}
NSLog(@"%@", dic);
NSLog(@"%@",dic2);
NSLog(@"%@",dic3);
//4.快速创建字典
//@{...key:value,......}
//key值不能重复,如果重复,后输入的内容不会显示。
NSDictionary *dic4 = @{@"zs":@"zhangsan",@"ls":@"lisi",@"cyh":@"cuiyuhe",@"cyh":@"cuichenggong"};
NSLog(@"%@",dic4);
//1.计算字典key,value对数目
NSInteger i = dic4.count;
NSLog(@"%lu",i);
//2.根据key,得到value
NSString *strValue = [dic4 objectForKey:@"cyh"];
NSLog(@"%@", strValue);
//3.字典遍历
//1).获取key 2).根据key,得到value
// for(NSString *key in dic4){
// NSString *value = [dic4 objectForKey:key];
// NSLog(@"%@ -----> %@", key,value);
// }
[dic4 enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"%@ = %@", key, obj);
}];
}
return 0;
}