我正在从网上下载SQLite数据库到我的iPad应用程序。如果我把它写到磁盘设置atomically: YES
我不能立即使用它,因为即使文件在那里,sqlite抱怨表不在那里。如果我使用atomically = NO
或者我延迟文件的打开几个瞬间,那么我没有这个问题。NSData writeToFile:原子地:不立即保存文件
我想我可以去了解它通过设置atomically = NO
但随后又是有某种形式的担保,该将writeToFile右后整个文件已被写入到磁盘:打电话?到目前为止,我的分贝并不是那么大,但它最终还是会加上我不知道在其他设备上等待多久。
Apple文档说,如果操作成功,则此方法返回YES
但显然不考虑保存文件的“滞后”。
任何帮助,非常感谢!
编辑:我看到其他人有the same problem。
我发现,说明原子文件写入该堆栈溢出线程:http://stackoverflow.com/questions/2705076/difference-between-writing-to-file-atomically-and-not 我”什么猜测是,你试图在操作系统把它写入永久存储之前访问该文件。你是否有理由必须以原子方式写作? –
这也是我的猜测,我试图找出解决方法。我必须以原子方式编写的原因是,如果由于某种原因,事件崩溃,我的主分区将损坏,导致我的应用程序无法使用。 – Julian
你是如何下载和写作? –