如何用信息更新现有的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?
答案 0 :(得分:2)
您需要将现有plist加载到NSDictionary
或NSArray
(视情况而定),然后使用其他数据更新数据,最后将更新后的数据写入plist文件。< / p>
答案 1 :(得分:1)
基本上现有的一个你必须使用dictionarywithcontentsfile方法读入字典然后根据你的要求使用setobjecwt方法进入字典然后写入plist。因此,旧值将保留在那里,您也可以更新新值。