【发布时间】:2010-09-30 10:16:45
【问题描述】:
我想将NSMutableArray 或NSDictionary 保存为永久文件。然后,我想稍后重新打开该文件。
这可能吗?如果是这样,我该怎么做?
【问题讨论】:
标签: ios cocoa-touch nsmutablearray nsdictionary nsdata
我想将NSMutableArray 或NSDictionary 保存为永久文件。然后,我想稍后重新打开该文件。
这可能吗?如果是这样,我该怎么做?
【问题讨论】:
标签: ios cocoa-touch nsmutablearray nsdictionary nsdata
写入文件
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *filePath = [documentsDirectory stringByAppendingPathComponent:FILE_NAME]; [myArray writeToFile:filePath atomically:YES];从文件中读取
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *filePath = [documentsDirectory stringByAppendingPathComponent:FILE_NAME]; myArray = [NSArray arrayWithContentsOfFile:filePath]; 如果文件不存在,myArray 将为 nil。 NSDictionary 也有类似的方法。有关这些方法的详细信息,请查看参考资料。
【讨论】:
FILE_NAME 应该如何格式化?你能给我一个例子可以使用什么文件名。
也许您可以将字典转换为 JSON 数据并将其写入文件。
NSDictionary *dict = /* the NSDictionary/NSArray you need to write */
NSError *writeError = nil;
NSData* data;
data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&writeError];
if (!writeError) {
[data writeToFile:filePath atomically:YES];
}
【讨论】: