我正在尝试将值设置为plist。Plist包含一个Array或Dictionary。Dictionary或Array可以在Dictionarys和数组中保存多个数组或Dictionarys。所以结构是这样的,
<key>Dictionary</key>
<dict>
<key>Dictionary-2</key>
<dict>
<key>Array</key>
<array>
<array>
<dict>
<key>Test</key>
<string></string>
</dict>
</array>
</array>
</dict>
</dict>所以,例如。我喜欢改变字符串测试,我该怎么做呢?当我创建MutableDictionarys和MutableArrays时,我可以将对象设置为索引。但是,我需要用新的字典和数组替换所有其他字典和数组。
有没有更简单的方法?然后替换字典或数组中的每个对象?
发布于 2014-02-16 20:15:52
使用propertyListWithData:options:format:error:读取属性列表时,可以设置NSPropertyListMutableContainers选项。
然后返回的属性列表具有可变的数组和字典,因此您只需替换内部对象,例如
plist[@"key1"][@"key2"][0][@"Test"] = @"new value;使用NSPropertyListMutableContainersAndLeaves选项,您甚至可以修改这些值,例如:
[plist[@"key1"][@"key2"][0][@"Test"] appendString:@"..."];如果您不知道中间节点是否存在,则必须在必要时创建它们,例如:
if (plist[@"key1"] == nil)
plist[@"key1"] = [NSMutableDictionary dictionary];
if (plist[@"key1"][@"key2"] == nil)
plist[@"key1"][@"key2"] = [NSMutableArray array];
if ([plist[@"key1"][@"key2"] count] == 0)
plist[@"key1"][@"key2"][0] = [NSMutableDictionary dictionary];
plist[@"key1"][@"key2"][0][@"Test"] = @"new value";https://stackoverflow.com/questions/21810860
复制相似问题