我正在從網上下載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
你是如何下載和寫作? –