【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字典数组的创建

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值