所以我有一些XML结构如下:
<wdata>
<wid>abc123</wid>
<wname>Main Name</wname>
<wauthor>Author</wauthor>
<plist>
<pdata>
<pid>def456_0</pid>
<pname>Sub Name</pname>
<ilist>
<idata>
<iid>ghi789_0</iid>
<iname>iName</iname>
<ivalue>32</ivalue>
</idata>
<idata>
<iid>ghi789_1</iid>
<iname>iName</iname>
<ivalue>23</ivalue>
</idata>
</ilist>
</pdata>
<pdata>
<pid>def456_1</pid>
<pname>Sub Name</pname>
<ilist>
<idata>
<iid>ghi789_2</iid>
<iname>iName</iname>
<ivalue>24</ivalue>
</idata>
<idata>
<iid>ghi789_3</iid>
<iname>iName</iname>
<ivalue>42</ivalue>
</idata>
</ilist>
</pdata>
</plist>
</wdata>
因此<plist>
可以包含任意数量的<pdata>
,每个<ilist>
中的<pdata>
可以包含任意数量的<idata>
。
我想将这些数据存储在Objective C中。我猜测最好的方法是<wdata>
是一个NSMutableDictionary对象,<plist>
是一个NSMutableArray,包含每个{{{NSMutableDictionary>对象的数组。 1}},然后每个<pdata>
都是NSMutableArrays,包含每个<ilist>
的NSMutableDictionary对象数组。 (!?)
我的问题是我正在努力访问字典中的数组,并且我正在努力将字典添加到字典中的数组。
例如,我使用以下代码将NSMutableDictionary添加到<idata>
:
<plist>
但是我在编译时遇到“无法识别的选择器”错误。
任何人都可以帮我访问并向我的嵌套词典和数组添加数据吗?
提前致谢!
答案 0 :(得分:2)
此处执行此行
[[wdata objectForKey:@"plist"] addObject:pDictCopy];
您的[wdata objectForKey:@"plist"]
必须返回NSMutableArray
,您可以NSLog
进行交叉验证,并检查它是否包含NSMutableArray
?
最好的方法是首先创建所有对象,意味着为字典设置对象,将字典添加到数组,然后将这些数组设置为字典,然后再设置为..