-
【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