我可以从多级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
,以便返回的对象图的所有级别都是可变的。然后,您可以编辑对象并将它们写回来。