我想将NSMutableDictionary对象的内容保存到文件中。我该怎么做呢 ?我已经知道如何使用NSDictionary对象执行此任务但我不知道如何将此NSMutableDictionary转换/复制到NSDictionary ...除非有一种方法将NSMutableDictionary的内容直接写入文件...我强调NSMutableDictionary对象包含NSDictionary类型的对象。
求助,
的Stephane
答案 0 :(得分:1)
NSMutableDictionary
是NSDictionary
的子类:您可以在任何使用NSDictionary
的地方使用它。从字面上看,只需将对象传递给您现在用于NSDictionary
的相同代码。
从更一般的意义上说,如果你真的需要从NSDictionary
获得一个真正不可变的NSMutableDictionary
,只需在copy
上调用NSMutableDictionary
。
其他方法包括[NSDictionary dictionaryWithDictionary:]
或[NSDictionary alloc] initWithDictionary:]
,这些方法基本上都是相同的。
答案 1 :(得分:1)
如果你只是转向NSDictionary文件。您将看到有一种方法可以将字典保存到文件
writeToFile:atomically:
将字典内容的属性列表表示写入给定路径。
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
参数
路径: 写入文件的路径。 如果path包含波形符(〜)字符,则必须在调用此方法之前使用stringByExpandingTildeInPath展开它。
标志: 一个标志,指定文件是否应以原子方式写入。
如果flag为YES,则将字典写入辅助文件,然后将辅助文件重命名为path。如果flag为NO,则将字典直接写入路径。 YES选项保证路径(如果存在的话)即使系统在写入期间崩溃也不会被破坏。
返回值
如果文件写成功,则为YES,否则为NO。
此方法在写出文件之前以递归方式验证所有包含的对象是属性列表对象(NSData,NSDate,NSNumber,NSString,NSArray或NSDictionary的实例),如果所有对象都不是属性列表对象,则返回NO ,因为结果文件不是有效的属性列表。
如果字典的内容都是属性列表对象,则此方法编写的文件可用于使用类方法dictionaryWithContentsOfFile:或实例方法initWithContentsOfFile初始化新字典:。
因此,您正在寻找的代码可能是:
[myDict writeToFile:path atomically:YES]
其中myDict
是您拥有的字典,path
是您要将其保存到的位置的路径