将NSDictionary保存为plist

时间:2011-06-10 19:13:39

标签: objective-c cocoa plist nsdictionary

我正在使用此帖子中的代码:Mulitple Arrays From Plist,使用相同的plist格式。

这项工作成功,但我不知道如何将创建的数组以相同的格式保存回plist。

我将如何实现这一目标?

编辑:这不是我需要的储蓄,而是形成要保存的数据 plist是一个包含字符串及其对应键的字典数组。 具有某个键的所有字符串都将放入自己的数组中。

如何将该数组放回字典数组中的正确位置,准备保存?

3 个答案:

答案 0 :(得分:24)

这是最简单的方法:

NSDictionary* dict = ...;
[dict writeToFile:@"..." atomically:YES];

请参阅-writeToFile:atomically:的文档。

答案 1 :(得分:16)

不要忘记创建 myPlistFile.plist 并将其添加到您的应用程序资源文件夹中。

NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

您可以在此扫描路径并使用for循环搜索myPlistFile.plist

NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"myPlistFile.plist"];
if (![[NSFileManager defaultManager] fileExistsAtPath: plistPath])
{
          NSString *bundle = [[NSBundle mainBundle] pathForResource:@"myPlistFile" ofType:@"plist"];
          [[NSFileManager defaultManager] copyItemAtPath:bundle toPath:plistPath error:&error];
}
[myDict writeToFile:plistPath atomically: YES];

答案 2 :(得分:1)

相反,从文件中加载NSDictionary:

+ (id)dictionaryWithContentsOfFile:(NSString *)path;