Estoy descargando un archivo SQLite db de la web en mi aplicación para iPad. Si lo escribo en la configuración del disco atomically: YES
no puedo usarlo inmediatamente porque aunque el archivo esté allí, sqlite se queja de que las tablas no están allí. Si utilizo atomically = NO
o retraso la apertura del archivo unos instantes, entonces no tengo este problema.NSData writeToFile: atómicamente: no guarda inmediatamente el archivo
supongo que podría ir sobre ella mediante el establecimiento de atomically = NO
pero por otra parte es existe algún tipo de garantía de que todo el archivo se ha escrito en el disco inmediatamente después de la WriteToFile: llamar? Hasta ahora, mi DB no es tan grande, pero con el tiempo, y no sé cuánto tiempo esperar en otros dispositivos.
Apple dice que este método devuelve YES
si la operación tiene éxito pero obviamente eso no tiene en cuenta el "retraso" al guardar el archivo.
¡Cualquier ayuda es muy apreciada!
EDIT: Veo que otras personas están teniendo the same problem.
yo encontramos este hilo desbordamiento de pila que describe la escritura de archivos atómica: http://stackoverflow.com/questions/2705076/difference-between-writing-to-file-atomically-and-not What I Supongo que está intentando acceder al archivo antes de que el SO lo escriba en el almacén permanente. ¿Hay alguna razón por la que tienes que escribir atómicamente? –
Esa fue mi suposición también y estoy tratando de encontrar una manera de evitarlo. La razón por la que tengo que escribir atómicamente es que, si por algún motivo falla, mi principal db se corromperá, haciendo que mi aplicación quede inutilizable. – Julian
¿Cómo estás descargando y escribiendo? –