每个字典都相当于一个model类,model类更倾向于可变字典
1. NSDictionary(不可变字典)
所有的不可变变量,只能在初始化的时候赋值
1.1 创建字典
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"male", @"sex", @"20", @"age", @"Tom", @"name", @"Running", @"hobby", nil];
1.2 获取所有的key值和所有的value值
NSArray *arr = [dic allKeys];
NSLog(@"%@", arr);
打印结果:
(
age,
sex,
hobby,
name
)
(2) 所有的Value值
NSArray *arr2 = [dic allValues];
NSLog(@"%@", arr2);
打印结果:
(
20,
male,
Running,
Tom
)
1.3 根据key值获取Value
NSString *str = [dic valueForKey:@"name"];
NSLog(@"%@", str);
打印结果:
Tom
1.4 遍历字典
(1) 第一种for循环
NSArray *arr = [dic allKeys];
for (int i = 0; i < [arr count]; i++) {
NSString *key = [arr objectAtIndex:i];
NSLog(@"%@", [dic valueForKey:key]);
}
打印结果:
20
male
Running
Tom
(2)第二种方法: forin
for (NSString *key in dic) {
// 根据key值获取Value值
NSLog(@"%@: %@", key, [dic valueForKey:key]);
}
打印结果:
age: 20
sex: male
hobby: Running
name: Tom
2. NSMutableDictionary(可变字典)
2.1. 创建字典
NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"male", @"sex", @"20", @"age", nil];
2.2 增加键值对
[mDic setValue:@"Tim" forKey:@"name"];
[mDic setObject:@"Running" forKey:@"hobby"];
for (NSString *key in mDic) {
NSLog(@"%@: %@", key, [mDic valueForKey:key]);
}
打印结果:age: 20
sex: male
hobby: Running
name: Tim
2.3 修改键值对
// 和增加键值对方法一样, 如果存在, 覆盖, 如果不存在, 添加
[mDic setValue:@"18" forKey:@"age"];
for (NSString *key in mDic) {
NSLog(@"%@: %@", key, [mDic valueForKey:key]);
}
打印结果:
age: 18
sex: male
hobby: Running
name: Tim
2.4 删除键值对
(1)
[mDic removeObjectForKey:@"age"];
for (NSString *key in mDic) {
NSLog(@"%@: %@", key, [mDic valueForKey:key]);
}
打印结果:
sex: male
hobby: Running
name: Tim
(2)[mDic setValue:nil forKey:@"hobby"];
for (NSString *key in mDic) {
NSLog(@"-%@: %@", key, [mDic valueForKey:key]);
}
打印结果:
sex: male
name: Tim
3. 字面量
NSNumber *number = @123;// 多态
NSString *string = @"123";// 字符串
NSArray *array = @[@"1", @"2"];// 数组 @[firstObj,...]
]
NSDictionary *dictionary = @{@"1":@"2"};// 字典 @{key:value,...}