更新多层次plist目标c



我可以从多级plist中读取数据,没有任何问题。

我还可以使用以下命令编辑单维列表:

NSArray *pathsArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *doumentDirectoryPath=[pathsArray objectAtIndex:0];
NSString *destinationPath= [doumentDirectoryPath stringByAppendingPathComponent:@"data.plist"];
// Read from document directory
NSMutableDictionary *settingsItem = [[NSMutableDictionary alloc] initWithContentsOfFile:destinationPath];
// update the dictionary
[settingsItem setValue: [NSNumber numberWithInt:score] forKey:@"score"];
// write back to file
[settingsItem writeToFile:destinationPath atomically:YES];

但是我不能更新多级列表。

我该如何在一个看起来像这样的列表上编辑分数?

<plist version="1.0">
<dict>
    <key>level1</key>
    <dict>
        <key>level</key>
        <string>level1.tmx</string>
        <key>music</key>
        <string>level1.mp3</string>
        <key>score</key>
        <integer>0</integer>
    </dict>
    <key>level2</key>
    <dict>
        <key>level</key>
        <string>level2.tmx</string>
        <key>music</key>
        <string>level2.mp3</string>
        <key>score</key>
        <integer>0</integer>
    </dict>
</dict>

使用NSPropertyListSerialization和选项NSPropertyListMutableContainersAndLeaves,以便返回的对象图的所有级别都是可变的。然后,您可以编辑对象并将它们写回来。

相关内容

  • 没有找到相关文章

最新更新