【问题标题】:is it possible to save NSMutableArray or NSDictionary data as file in iOS?是否可以将 NSMutableArray 或 NSDictionary 数据保存为 iOS 中的文件?
【发布时间】:2010-09-30 10:16:45
【问题描述】:

我想将NSMutableArrayNSDictionary 保存为永久文件。然后,我想稍后重新打开该文件。

这可能吗?如果是这样,我该怎么做?

【问题讨论】:

    标签: ios cocoa-touch nsmutablearray nsdictionary nsdata


    【解决方案1】:

    写入文件

    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 也有类似的方法。有关这些方法的详细信息,请查看参考资料。

    【讨论】:

    • @gef,TRUE/FALSE 和 YES/NO 之间有什么实际区别吗?
    • @taskinoor 嗨,FILE_NAME 应该如何格式化?你能给我一个例子可以使用什么文件名。
    • @Superman,FILE_NAME 是任何有效的文件名。没有特殊格式。
    • 因为我尝试了您对我的问题的回答,似乎没有用。在目录中找不到,
    • 我无法找到保存文件的路径。帮助?
    【解决方案2】:

    也许您可以将字典转换为 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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      相关资源
      最近更新 更多