美文网首页iOS 重修笔记
重修笔记之字典

重修笔记之字典

作者: iOS_July | 来源:发表于2018-02-27 16:58 被阅读1次

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

相关文章

  • 重修笔记之字典

    NSDictionaryNSMutableDictionary 一、创建字典 即 即 快速创建 二、键值对的个数 ...

  • 重修笔记之UINavigationBar

    一、导航栏外观 二、导航栏内容 第三、效果显示 给viewController添加一个导航栏,默认效果如下:默认效...

  • 重修笔记之数组

    NSArray :不可变数组NSMutableArray :可变数组 一、创建 二、元素个数 arr.count ...

  • 重修笔记之Protocol

    基本用途 可以用来声明很多方法不能声明成员变量,只有.h文件 只要某个类遵守了这个协议,就相当于拥有了这个协议中的...

  • 重修笔记之Block

    相信大家都明白 block 的重要性是毋庸置疑的,它本身封装了一段代码并将这段代码当做变量,通过 block...

  • 重修笔记之UILabel

    UILabel------基础控件 显示的文本只读,无法编辑,可以根据文字个数自动换行 一、定义UILabel +...

  • 重修笔记之设置UITabBarController[基础]

    创建UITabBarController类 tip ->项目建好后,显示的是默认创建的ViewController...

  • 重修笔记之网络编程Socket

    在网络中,两个程序之间是通过一个双向的通信连接来实现数据交换的。这个连接的一端为Socket,又称套接字,包含了终...

  • Redis笔记之字典

    字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是...

  • 重修笔记之网络编程原理URL

    一、网络编程基本概念 HTTP-超文本传输协议。HTTP基于请求和应答,需要的时候建立连接提供服务,不需要的时候断...

网友评论

    本文标题:重修笔记之字典

    本文链接:https://www.haomeiwen.com/subject/lsjmxftx.html