如何更新现有的.plist?

时间:2013-11-05 23:09:12

标签: ios objective-c cocoa-touch plist

如何用信息更新现有的plist?我有简单的字典和字符串。这是我的保存方法:

#define DOCUMENTS [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]

- (IBAction)saveData:(id)sender {
    NSMutableDictionary *data = [NSMutableDictionarydictionaryWithObjects:@[self.textFieldOne.text, self.textFieldTwo.text, self.textFieldThree.text] forKeys:@[@"Key1", @"Key2", @"Key3"]];
    NSError *error = nil;
    NSData *dataToPlist = [NSPropertyListSerialization dataWithPropertyList:data format:NSPropertyListXMLFormat_v1_0 options:0 error:&error];
    NSString *path = [DOCUMENTS stringByAppendingPathComponent:@"userData.plist"];
    [dataToPlist writeToFile:path atomically:YES];
}

因此,当我从Class 1调用此方法时,它可以,但是当我想用Class 2中的其他信息更新此plist时 - 它会用新信息覆盖旧信息。我应该怎么做用其他类的新信息更新现有的plist?

2 个答案:

答案 0 :(得分:2)

您需要将现有plist加载到NSDictionaryNSArray(视情况而定),然后使用其他数据更新数据,最后将更新后的数据写入plist文件。< / p>

答案 1 :(得分:1)

基本上现有的一个你必须使用dictionarywithcontentsfile方法读入字典然后根据你的要求使用setobjecwt方法进入字典然后写入plist。因此,旧值将保留在那里,您也可以更新新值。