No se puede encontrar el file guardado (en el dispositivo) después de reiniciar la aplicación

Tengo una aplicación que genera un file .pdf desde una image. Si voy a leer el file en la misma session que tomé la foto, el file aparece correctamente.

Sin embargo, si reinicio la aplicación, el file no se abrirá. Obviamente, nada cambia en el código de la aplicación cuando la aplicación se reinicia, por lo que las references de location siguen siendo las mismas.

El file se guarda en esta location:

/var/mobile/Containers/Data/Application/E119DC03-347B-4C84-B07B-C607D40D26B9/Documents/Test_1_Mod.pdf 

La parte extraña es que si voy a la sección "dispositivos" de Xcode, puedo ver los files en la carpeta Documentos, antes y después de reiniciar la aplicación:

introduzca la descripción de la imagen aquí

Editar: así es como obtengo la location para save el file:

 NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES); NSString *path = [arrayPaths objectAtIndex:0]; modified_pdfFileName = [path stringByAppendingPathComponent:modified_filename_pdf]; 

Entonces, ¿estoy guardando el file en la location incorrecta?

¿Se mueve el file, de alguna forma durante el reinicio?

¿Alguna sugerencia para este problema?

Gracias

No debe almacenar las routes de file sin procesar para la persistencia (o si lo hace, sepa que la raíz puede moverse). Una mejor práctica sería almacenar solo la parte relativa de la ruta y adjuntarla siempre a la ruta actual "raíz" en cuestión (especialmente si puede compartir datos entre dispositivos como con iCloud).

Sin embargo, es común tomar el atajo, así que aquí hay un código rápido y sucio para tomar una ruta de file (que se supone está en el directory de Documentos, puede ajustar para probar si está usando una location diferente) y actualizarlo a la ruta de documentos actual.

 + (NSString *)rebasePathToCurrentDocumentPath:(NSString *)currentFilePath { NSString *fileComponent = [currentFilePath lastPathComponent]; NSArray *currentDocumentDir = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString *currentDocumentPath = [currentDocumentDir objectAtIndex: 0]; NSString *rebasedFilePath = [currentDocumentPath stringByAppendingPathComponent:fileComponent]; return rebasedFilePath; } 

Agregue esto a una class de utils o, de lo contrario, integrelo en su flujo.