NSSearchPathForDirectoriesInDomains devuelve el directory incorrecto

Estoy utilizando NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) para get el directory de documentos de la aplicación en mi aplicación, pero la matriz que se devuelve contiene solo un object, y es un directory incorrecto y no puede escribirse:

/ Users / me / Library / Application Support / iPhone Simulator / Documentos

Encontré esta pregunta que indica que el problema está relacionado con el aprovisionamiento, pero la respuesta dice poco más que eso. Entonces supongo que estoy haciendo una pregunta duplicada, pero la respuesta a esa pregunta es insuficiente, así que espero get una respuesta real en esta.

Hmm … así que una razón por la que el directory devuelto podría ser diferente de lo que cabría esperar para una aplicación podría estar relacionado con el tipo de destino Xcode. Esto no sería un objective de testing, ¿no? en cuyo caso la respuesta correcta podría ser una respuesta sin una GUID de la aplicación, ya que de hecho no es una aplicación. Esta discusión de grupo de Google implica que, si este es el caso, sería bueno simplemente crear el directory.

Solo para sonrisas, he creado el directory / Users / me / Library / Application Support / iPhone Simulator / Documents desde la window del terminal, y ahora parece que se ejecuta. Todavía hay errores de testing, pero esos pueden ser reales.

Recomendaría que cambies la aplicación de testing para crear el directory de documentos si falta, algo así como:

  if(![[NSFileManager defaultManager] createDirectoryAtPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) withIntermediateDirectories:YES attributes:nil error:NULL]) NSLog(@"Error: Create folder failed %@", NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)); 

Esto funciona para mí:

 [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 

Puedes probar esto:

  /** Returns the path to the application's Documents directory. */ - (NSString *)applicationDocumentsDirectory { return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; } 

Creo que solo te falta el último post de object.

Estoy teniendo exactamente el mismo problema, y ​​en mi caso es porque estoy ejecutando el código de una class XCTest.

Mi conjetura es que las testings no se ejecutan en el entorno limitado de la aplicación.

Eso es porque mis testings están relacionadas con un proyecto de biblioteca estático, incluido en el proyecto principal.

Tan pronto como ejecuto exactamente el mismo código de una ejecución de mi aplicación, las routes se devuelven correctamente.

Espero que esto ayude.