我正在从网上下载一个SQLite数据库到我的iPad应用程序中.如果我把它写到磁盘设置atomically: YES我不能立即使用它,因为即使文件在那里,sqlite抱怨表不存在.如果我使用atomically = NO或延迟文件的打开几个瞬间,那么我没有这个问题.
我想我可以通过设置来解决它atomically = NO但是又有一种保证在writeToFile:call之后整个文件已经写入磁盘了吗?到目前为止,我的数据库并不是那么大,但它最终还会,而且我不知道在其他设备中等待多长时间.
Apple文档说YES如果操作成功,则此方法返回但显然没有考虑保存文件的"滞后".
任何帮助是极大的赞赏!
编辑:我看到其他人也有同样的问题.
小智 1
根据链接,该操作要么完全写入,要么失败。
考虑到这一点,在另一个线程上原子写入,然后执行类似的操作!
while (![[FileManager defaultFileManager] fileExistsAtPath:yourEventualDBPath]) {
[NSThread sleepForTimeInterval:.5];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4166 次 |
| 最近记录: |