iOS 重修笔记

重修笔记之字典

2018-02-27  本文已影响1人  iOS_July

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"]);

六、提示

上一篇下一篇

猜你喜欢

热点阅读