2

如何用信息更新现有的 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?

4

2 回答 2

2

您需要将现有的 plist 加载到NSDictionaryorNSArray中(根据需要),然后使用附加数据更新数据,最后将更新的数据写入 plist 文件。

于 2013-11-05T23:13:13.550 回答
1

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

于 2013-11-06T02:48:47.357 回答