我有一个包含键和值的plist文件,我希望用户能够使用其值保存一个键,以便以后可以回调它。我有回调部分都编程但我需要能够保存它。现在我有这个:
- (IBAction)addKey:(id)sender {
NSString *string1 = [input stringValue];
NSString *string2 = [filesField stringValue];
NSMutableDictionary *fileKeys = [[NSMutableDictionary alloc] initWithContentsOfFile:
[[NSBundle mainBundle] pathForResource:@"Keys" ofType:@"plist"]];
[fileKeys setValue:string2 forKey:string1];
}
我做错了什么,它并没有将这个键及其值添加到plist。
答案 0 :(得分:2)
首先,您不应该真正更新捆绑包中的plist文件;虽然它可以工作,但它会破坏应用程序上的任何签名,并且肯定会破坏沙箱。
作为替代方法,您可以将原始plist存储在捆绑包中,并在第一次运行应用程序时将其复制到应用程序Application Support文件夹。
其次,您需要将修改后的字典写回文件系统,您可以使用NSDictionary
的{{1}}或writeToURL:atomically
方法执行此操作。
答案 1 :(得分:0)
plist不是唯一的选择。您还可以使用核心数据来实现它,具体取决于您要存储的内容。如果您使用CD,它会非常方便,您可以将GUI控件的外观绑定到CD中的项目。 基本上,您需要实体,一个用于用户,一个用于项目。这将允许您自己将配置保留在捆绑中。不应该在沙箱下破坏,但到目前为止我还没有沙箱的实际经验。