如何将NSMutableDictionary保存到文档中的文件?

我想将一个NSMutableDictionary对象的内容保存到一个文件。 我该怎么做呢 ? 我已经知道如何做一个NSDictionary对象这个任务,但我不知道如何将此NSMutableDictionary转换/复制到一个NSDictionary …除非有一种方法直接写入NSMutableDictionary的内容到一个文件…我强调NSMutableDictionary对象包含NSDictionarytypes的对象。

Thx帮助,

斯特凡

NSMutableDictionaryNSDictionary一个子类:你可以在任何你使用NSDictionary地方使用它。 从字面上看,只需将对象传递给您现在用于NSDictionary的相同代码即可。

从更一般的意义上讲,如果你真的需要从一个NSMutableDictionary获得一个真正不可变的NSDictionary ,只需要调用NSMutableDictionary上的copy

其他的方法包括[NSDictionary dictionaryWithDictionary:][NSDictionary alloc] initWithDictionary:] ,这些都基本上是相同的东西。

如果你只是摆动到NSDictionary文件。 你会看到有一种方法可以将字典保存到文件中

writeToFile:atomically:

将字典内容的属性列表表示写入给定的path。

 - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag 

参数

path:写入文件的path。 如果path包含代字符(〜)字符,则必须在调用此方法之前使用stringByExpandingTildeInPath对其进行扩展。

标志:一个标志,指定文件是否应以primefaces方式写入。

如果标志为YES,则将字典写入辅助文件,然后将辅助文件重命名为path。 如果标志为NO,则字典直接写入path。 YES选项保证path(如果存在的话)即使系统在写入期间崩溃也不会被破坏。

返回值

如果文件写入成功则为YES,否则为NO。

在写出文件之前,此方法recursion地validation所有包含的对象是属性列表对象(NSData,NSDate,NSNumber,NSString,NSArray或NSDictionary的实例),如果所有对象不是属性列表对象,则返回NO生成的文件不会是有效的属性列表。

如果字典的内容都是属性列表对象,则可以使用此方法编写的文件通过类方法dictionaryWithContentsOfFile或实例方法initWithContentsOfFile:来初始化新的字典。

所以你正在寻找的代码可能是这样的:

 [myDict writeToFile:path atomically:YES] 

其中, myDict是您拥有的字典, path是要保存到的位置的path