字典和数组之间有什么区别?

Jac*_*ies 16 objective-c nsdictionary plist nsarray ios

字典和数组之间有什么区别,特别是在使用PLIST文件时?使用一个优于另一个有什么好处?谢谢!

iku*_*dia 33

这两个NSDictionaryNSArray是集合类,即基团以及其他目的.

NSArray是一个"有序集合" - 集合中的每个项目都有一个整数索引,因此对项目有明确的顺序.如果您交换集合中的项目顺序,则集合不再是与订单不同的"相同".对象可能在集合中出现多次.

NSSet是一个"无序集合" - 每个项目都出现在一个包中,顺序无关紧要,一个对象只能在包中存在一次.

NSDictionary是一个"索引集合" - 集合中的每个项目都有一个密钥,可以使用该密钥检索.一个对象可能出现不止一次,因为不同的键可能指向同一个对象,但一个键只能出现一次.如果你有计算机科学背景,字典也是'哈希表'的一种形式.

解析PLIST时,Arrays和Dictionaries是您处理的主要类型.当您在Xcode中编辑PLIST时 - 如果您将某些东西设置为数组类型,那么它的所有子项都会被列为"项目0,项目1,项目2 ......",而如果您将其设置为字典类型,那么它就是孩子是关键:价值对.

差异类型的一个重要用例如下.

想象一下杂志申请,其中包含许多文章.文章的顺序很重要,因此您可以将每篇文章存储在一个数组中.如果要更改文章的顺序,可以更改plist中数组的顺序.

文章本身可以由字典表示,可能包含诸如"TextFile","Background","ArticleType"之类的键.您使用Dictionary是因为您可能在将来的某个时刻向字典添加更多信息,而key:value机制使您的代码可以理解.