A-A+

iOS 字典基础

博客主机

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)
  • 字典的无序的

作者:iOS_July
链接:https://www.jianshu.com/p/2484b0895e39
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:

给我留言

Copyright © ios教程,苹果粉丝,苹果资讯,ios入门教程,ios学习,ios程序员,ios视频教程,ios粉丝网 保留所有权利.   Theme  Ality

用户登录