0

所以我有一些结构如下的 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>

所以 the<plist>可以包含任意数量的<pdata>,并且<ilist>in each<pdata>可以包含任意数量的<idata>

我想将这些数据存储在 Objective C 中。我猜最好的方法是<wdata>成为一个 NSMutableDictionary 对象,<plist>成为一个 NSMutableArray,其中包含每个 NSMutableDictionary 对象的数组<pdata>,然后每个<ilist>NSMutableArrays 包含每个 NSMutableDictionary 对象的数组<idata>。(!?)

我的问题是我正在努力访问字典中的数组,并且我正在努力将字典添加到字典中的数组中。

例如,我使用以下代码将 NSMutableDictionary 添加到<plist>

[[wdata objectForKey:@"plist"] addObject:pDictCopy];

但是我在编译时遇到“无法识别的选择器”错误。

谁能帮我访问嵌套字典和数组并将数据添加到我的嵌套字典和数组中?

提前致谢!

4

1 回答 1

2

在这里执行这一行

[[wdata objectForKey:@"plist"] addObject:pDictCopy];

[wdata objectForKey:@"plist"]必须返回一个NSMutableArray,你可以通过交叉验证NSLog,并检查它是否包含一个NSMutableArray?。

最好的方法是首先创建所有对象,即为字典设置对象,将字典添加到数组中,然后将这些数组设置为字典,然后再..

于 2012-11-02T11:35:06.633 回答