保存文件在 iPhone 和模拟器上的行为不同

Posted

技术标签:

【中文标题】保存文件在 iPhone 和模拟器上的行为不同【英文标题】:Saving file behaves differently on iPhone and simulator 【发布时间】:2014-04-01 17:42:01 【问题描述】:
-(void) saveJsonToFile 
    //Original document from Resources folder
    NSString* saveFilePath = [[NSBundle mainBundle]pathForResource:@"data" ofType:@"json"];
    //NSLog(@"Saving...%@", saveFilePath);
    NSData* jsonData = [NSKeyedArchiver archivedDataWithRootObject:myArray];

    BOOL success = [jsonData writeToFile:saveFilePath atomically:YES];
    NSLog(success ? @"Yes" : @"No");

在模拟器上,它会记录 Yes。部署到我的 iPhone 时,它​​记录不。任何人都知道这是为什么以及如何修复它?提前致谢。

【问题讨论】:

对此不是 100% 确定,但我认为您正在尝试写入您的包,而不是您的 Documents 或 Temp 目录。 ios 禁止这样做,但可能只在实际设备上强制执行。 【参考方案1】:

您不得写入自己的应用程序包。 (这也是一件好事!修改自己的应用程序将是一件可怕的事情。)写入沙箱(例如文档文件夹或应用程序支持文件夹)。

【讨论】:

这里是我对写信的好地方以及如何获取它们的参考的解释:apeth.com/iOSBook/ch36.html#_the_sandbox

以上是关于保存文件在 iPhone 和模拟器上的行为不同的主要内容,如果未能解决你的问题,请参考以下文章

React-Native AsyncStorage 使用 iPhone 模拟器将数据保存在磁盘上的啥位置?

Mongoose 在 Mac 和 Windows 上的选择、填充和保存行为不同

将 mp3 数据保存在 iPhone 上的文件中

HTTPRequest 并将文件本地保存到 iPad/iPhone

将 .txt 文件从 ftp 保存到文档文件夹 iphone

PrototypeCell 中的 UITextView 在两个 iPhone 模拟器中具有不同的行为