ios - 如何更新现有的.plist?

标签 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];
}

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

最佳答案

您需要将现有的plist加载到NSDictionaryNSArray(视情况而定)中,然后使用附加数据更新数据,最后写出更新的数据到 plist 文件。

关于ios - 如何更新现有的.plist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19800914/

相关文章:

objective-c - 创建易于使用的静态库 Cocoa

iphone - 如果我已经发布的 v1 没有版本化的核心数据模型,我可以使用 "Automatic Lightweight Migration"吗?

objective-c - 显示 View Controller 时是否调用了 didReceiveMemoryWarning/viewDidUnload?

ios - UILocalNotification 在后台 10 分钟后不提示

ios - 在iOS上将NSData转换为NSAttributedString

iphone - 什么时候用encodeWithCoder : and initWithCoder: on the iPhone?

iphone - 在 Xcode 4.2 中启用崩溃日志符号化

ios - 检测应用程序中是否存在 WatchKit 扩展

ios - Ionic pro - 构建并发布到 Apple Store

ios - UIWebView 刺激器/应用程序?