NSDictionary与 NSArray的

sys*_*bug 5 nsdictionary nsarray ios

我正在阅读objective-c(书呆子牧场书),我不禁想到这个问题:我如何决定使用哪种集合类型,NSArray或NSDictionary(两者都带有或者没有它们的可变子类)从URL读取内容时?

假设我正在从PHP脚本(正在处理的场景)中读取JSON数据,哪些要使用?我知道在许多参考文献中都说它依赖于数据结构(即JSON),但是可以概述两种结构的清晰轮廓吗?

谢谢大家的帮助:)

Flo*_*ian 10

NSArray基本上只是一个有序的对象集合,可以通过索引访问.
NSDictionary提供按键访问其对象(通常是NSStrings,但可以是任何对象类型,如哈希表).

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


Esb*_*enB 2

NSArray当您拥有相同类型对象的集合以及NSDictionary对象具有属性时,您需要使用它。

如果有,假设有一个包含 a 、 a和 an 的person对象,您可以将其放入字典中。namephone numberemail

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

如果你想要多个人,你可以将人对象放入一个数组中。

这样做允许您迭代用户对象。