字典的定义以及使用
不可变字典
1.在字典里 键 和 值是成对出现的 字典是通过键(Key)来存取值的且每一个值对应的Key是唯一的 字典的类名是NSDictionary
2.字典的定义
(1)初始化一个空字典
NSDictionary *dic = [[NSDictionary alloc] init];
NSDictionary *dic1 = [NSDictionary dictionary];
(2)初始化的同时添加一对键值 这种定义方式是前面是值(id) 后面是键
NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@“object” forKey:@“key”];
(3)初始化的同时添加多对值 (前面是值 (id) 后面是键(字符串))
NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@“object1”,@“key1”,@“object2”,@“key2”,- - -,nil];
(4)字典初始化的新方法 (前面是键 后面是值(id))
NSDictionary *dic4 = @{@“key”,@“object”,@“key1”,@“object1”,- - -};
取值方式:字典名[@“key”];
(5)字典的取值是通过 objectForKey来取值的
形式是: [字典名 objectForKey:@“key”];
例如:NSDictionary *dic5 = @{@"key":@"值", @"key1":@"值1"};
NSString *string = [dic5 objectForKey:@"key"];
(6)另一种取值方式 字典名[@“key”]。
NSString *string1 = dic5[@"key1"];
可变字典
1.可变字典的初始化方式和不可变的是一样的 就是将NSDictionary 换成
NSMutableDictionary就可以了 但可变字典没有初始化的新方法
即不能这样定义:
NSMutableDictionary *dic = @{@“key”,@“object”,@“key1”,@“object”- - -};
2.向可变字典里存入键值的方法是setObject: 它也可以用来改变Key的值
(1)向可变字典里存入键值的实现方法
形式:[字典名 setObject:@“值” forKey:@“key”];
例如:NSMutableDictionary *dic3 = [NSMutableDictionary dictionary];
[dic3 setObject:@"大哥" forKey:@"name"];
(2) 改变Key的值的实现方式是:Key不变去改变值
形式:[字典名 setObject1:@“值” forKey:@“key”];
例如:[dic3 setObject:@"俊哥" forKey:@"name"];
(3)通过key移除key对应的key和值。方法:removeObjectForKey:
形式:[字典名 removeObjectForKey:@“key”];
例如:[dic3 removeObjectForKey:@"name"];
3.遍历一个字典
//allkeys 会取出字典里面所有的key放到一个数组里面
例如:NSDictionary *dic1 = @{@"obj": @"objects1", @"obj1":@"objects1"};
NSArray *all = dic1.allKeys;
for (NSString *key in all) {
NSLog(@"%@",[dic1 objectForKey:key]);
}