NSDictionary VS. NSArray的

我正在阅读的Objective-C(一个书呆子牧场书),我不禁想到这个问题:我如何决定哪个集合types,NSArray或NSDictionary(无论是用或不可用的子类),使用从URL读取内容?

假设我正在从PHP脚本(正在处理的一个场景)中读取JSON数据,那么要使用哪个? 我知道在很多参考文献中都提到它取决于数据结构(即JSON),但是可以清楚地概述这两种结构吗?

谢谢大家的帮助:)

NSArray基本上只是一个有序的对象集合,可以通过索引来访问。
NSDictionary通过键提供对其对象的访问(通常是NSStrings,但可以是任何对象types,如散列表)。

要从通过URL加载的JSONstring生成对象图,可以使用生成Objective-C对象结构的NSJSONSerialization 。 结果对象取决于JSONstring。 如果您的JSON中的顶级元素是一个数组(以"["开头),您将得到一个NSArray。 如果顶级元素是一个JSON对象(以"{"开头),您将得到一个NSDictionary。

当你有一个相同types的对象的集合时,你想要使用NSArray NSDictionary当你有一个对象的属性时,你想使用NSDictionary

如果有的话,让我们说一个包含namephone numberemailperson对象,然后把它放在字典中。

这样做可以使值的顺序是随机的,并为您提供更可靠的代码。

如果你想有更多的人,你可以把人物放在一个数组中。

这样做可以让您迭代用户对象。

“withContentOfURL”或“withContentOfFile”要求URL或文件中的数据按照Cocoa要求的特定格式。 JSON 不是那种格式。 如果您首先使用相同的数据将数据写入文件或URL,则只能使用这些方法。 如果你写一个NSArray,你可以读一个NSArray。 如果你写一个NSDictionary,你可以读一个NSDictionary。 其他一切都会失败。