• 【NSDictionary字典数组的创建 Objective-C语言】


    一、NSDictionary与NSMutableDictionary

    1.它们是数组,它们就是以键值对的形式存储数据的

    往这个数组中存储数据的同时,必须要指定这个数据的别名,才可以

    要找到存储在这个数组中的数据,通过别名来找,而不是通过下标

    NSDictionary与NSMutableDictionary有什么区别,

    1)NSDictionary是父类,NSMutableDictionary是子类

    2)NSDictionary里面的元素,是不是不可以修改啊,NSMutableDictionary里面的元素,可以动态的增加和删除

    3.NSDictionary,我们叫做字典数组,因为Dictionary就是字典的意思嘛

    1)存储数据的原理,

    a. 以键值对的形式存储数据

    b. 字典数组一旦创建,其中的元素就无法动态的新增和删除

    c. 键:只能是遵守了NSCoping协议的对象,而NSString就是遵守了这个协议的,所以NSString能不能当它的键,可以

    值:只能是OC对象

    2)怎么创建1个NSDictionary数组呢

    NSDictionary是我们这个Foundation框架中的1个类,

    所以,你要去创建这个类的对象的话,还是那三种方式,new,alloc init ,同名类方法

    NSDictionary *dict1 = [NSDictionary new];

    NSDictionary *dict2 = [[NSDictionary alloc] init];

    NSDictionary *dict3 = [NSDictionary dictionary];

    这种方式创建出来的字典数组,里面没有元素,所以没有意义

    3)一般创建方式

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:(nonnull id),…,nil];

    你在后面依次写上值、键、值、键、就可以了

    例如:

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@“jack”,@“name”,@“广州市XX街道”,@“address”,nil];

    这就表示什么呢,是不是存了1对儿进去了吧

    我们打出来看一下啊,

    NSLog(@“%@”,dict);

    输出:address = “\U5317\U4eac\U5e02XX\U8857\U9053”;

    name = jack;

    这个“\U5317\U4eac\U5e02XX\U8857\U9053”是什么意思,其实原因很简单,你这个是不是中文啊,它用的编码不一样,所以输出来不一样,这个其实就是我们“广州市XX街道”的编码

    这个方法的签名如下:

    + (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject,…;

    这个方法做了什么事情呢,

    将字典数组的值和键,挨个的写在后面,初始化就可以了,

    4)简要创建方式

    NSDictionary *dict = @{@“name”: @“rose”,@“age”: @“18”,@“address”: @“guangzhoushiXXstreet”};

    @{键1:值1,键2:值2,键3:值3,键4:值4,键5:值6,…};

    这个其实是1个简写方式,这个@{@“name”: @“rose”,@“age”: @“18”,@“address”: @“guangzhoushiXXstreet”};其实也是1个对象,只不过跟我们之前一样的啊,也可以用简要的方式创建NSDictionary对象,

    我们输出来看一下啊,NSLog(@“%@”,dict);

    输出:address:guangzhouXXstreet

    age:18

    name:rose

    好了,以上就是我们NSDictionary字典数组的创建

  • 相关阅读:
    JAVA架构之路(二)
    Git常用命令介绍
    ES6中的箭头函数详细梳理
    【RS】遥感影像/图片64位、16位(64bit、16bit)的意义和区别
    FreeRADIUS服务器添加自定义参数
    Java中多态的优势和劣势是什么?
    酷睿处理器型号前面的字母代表什么
    复习计算机网络——第一章
    机器学习sklearn——day01
    Spring MVC相关异常类
  • 原文地址:https://blog.csdn.net/madoca/article/details/127813924