保存文件在 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 上的选择、填充和保存行为不同
HTTPRequest 并将文件本地保存到 iPad/iPhone