如何从plist文件中读取数组?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

如何从plist文件中读取数组?

a123456678 2016-07-20 17:52:15 944

我想用cocos2d-x读取一个plist文件,如下所示:

<array>
    <dict>
        <key>x</key>
        <integer>0</integer>
        <key>y</key>
        <integer>0</integer>
    </dict>
    <dict>
        <key>x</key>
        <integer>140</integer>
        <key>y</key>
        <integer>12</integer>
    </dict>
    <dict>
        <key>x</key>
        <integer>120</integer>
        <key>y</key>
        <integer>280</integer>
    </dict>
    <dict>
        <key>x</key>
        <integer>40</integer>
        <key>y</key>
        <integer>364</integer>
    </dict>
<array>
它是由(x, y)形式的坐标组成的基础数组序列,我使用的初始代码如下:

NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"w%i", world] ofType:@"plist"];
NSMutableArray* points = [NSMutableArray arrayWithContentsOfFile:path];
但是现在,我需要将上述代码翻译成用C++编写的cocos2d-x中,虽然用google搜索了一些文章,但是它们却无法解决我的问题,有没有人可以提供给我一个可利用的数组?
注:
现在,我更改了plist文件的格式:

<dict>
    <key>11x</key>
    <integer>0</integer>
    <key>11y</key>
    <integer>0</integer>
    <key>12x</key>
    <integer>140</integer>
    <key>12y</key>
    <integer>12</integer>
<dict>
但仍然出现一样的错误:

CCDictionary<std::string, CCObject*>* dict = CCFileUtils::dictionaryWithContentsOfFile(plistPath);
int x = (int)dict->objectForKey("11x");
int y = (int)dict->objectForKey("11y");
我该如何解决?
C++
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:59:08
    <dict> <key>root</key>
      <array>
        <dict>
            <key>x</key>
            <integer>0</integer>
            <key>y</key>
            <integer>0</integer>
        </dict>
        <dict>
            <key>x</key>
            <integer>140</integer>
            <key>y</key>
            <integer>12</integer>
        </dict>
        <dict>
            <key>x</key>
            <integer>120</integer>
            <key>y</key>
            <integer>280</integer>
        </dict>
        <dict>
            <key>x</key>
            <integer>40</integer>
            <key>y</key>
            <integer>364</integer>
        </dict>
      <array>
    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题