NSDictionary
NSMutableDictionary
@interface NSMutableDictionary<KeyType, ObjectType> : NSDictionary<KeyType, ObjectType>
同数组---NSDictionary的特性,NSMutableDictionary同样继承
字典:
key -----> value
索引 ----> 文字内容
存储键值对
一、创建字典
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"字典" forKey:@"name"];
即
NSArray *keys = @[@"name", @"address"];
NSArray *objects = @[@"字典", @"桌上"];
NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
即
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"字典", @"name",
@"桌上", @"address", nil];
快速创建
NSDictionary *dict = @{@"name" : @"字典", @"address" : @"桌上"};
二、键值对的个数
dict.count
三、字典遍历
NSArray *keys = [dict allKeys];
for (int i = 0; i<dict.count; i++)
{
NSString *key = keys[i];
NSString *object = dict[key];
NSLog(@"%@ = %@", key, object);
}
即
[dict enumerateKeysAndObjectsUsingBlock:
^(id key, id obj, BOOL *stop) {
NSLog(@"%@ - %@", key, obj);
}];
四、NSMutableDictionary
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- 添加键值对
[dict setObject:@"字典" forKey:@"name"];
[dict setObject:@"桌上" forKey:@"address"];
- 移除键值对
[dict removeObjectForKey:@"name"];
[dict removeAllObjects];
五、字典数组
其实在工作中遇到的网络数据几乎都是这样的组合
NSArray *persons = @[
@{@"name" : @"小明", @"phone" : @"123456", @"likes": @[@"写代码", @"玩游戏"]},
@{@"name" : @"小花", @"phone" : @"233333"},
@{@"name" : @"小松", @"phone" : @"3333333"},
@{@"name" : @"小白", @"phone" : @"4333333"}
];
//先取出下标0位置对应的字典
//再取出字典中likes这个key对应的数组
//再取出数组中下标为1的数据
NSString * hobby = persons[0][@"likes"][1];
NSLog(@"%@", hobby);
//先取出下标1位置对应的字典
//再取出字典中phone这个key对应的数据
NSLog(@"%@", persons[1][@"phone"]);
六、提示
- 字典不允许有相同的key,但允许有相同的value(Object)
- 字典的无序的
网友评论