iphone - generate - preference name
Xcode: archivo de directorio para simulador de Iphone (8)
Quiero escribir una cadena en un archivo "file.txt": este archivo en mi proyecto (para Iphone) está dentro de Recursos; Intento escribir una cadena en este archivo pero no funciona, muestro mi código.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"file.txt"];
NSError *error;
[outputString writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
Quiero escribir en este archivo con simulador xcode, no con dispositivo
Con el código de ejemplo que tiene aquí, no se escribirá en la carpeta Recursos, sino en la carpeta Documentos del Simulador, que es donde debería escribir en el dispositivo, pero como menciona, solo desea hacerlo en el simulador. , podrias usar
filePath = [[NSBundle mainBundle] bundlePath] stringByAppendingPathComnponent:@"Resources"]
Pero, no hagas esto en una aplicación de envío, fallará.
El directorio de Documentos para su aplicación en el simulador se encuentra en;
~/Library/Application Support/iPhone Simulator/YOUR-IOS-VERSION/Applications/UNIQUE-KEY-FOR-YOUR-APP/Documents
En gdb, detenga el proceso y péguelo, luego se imprimirá la ubicación de los Documentos. [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]
po [[[NSFileManager defaultManager] URLsForDirectory:9 inDomains:1] lastObject]
No estoy seguro de si puede escribir en su paquete, pero puede hacerlo en su directorio Documentos como lo hace su código. ¿Por qué no intentas esto?
Use el mismo código y encontrará su archivo en:
/ Users / YOURUSER / Library / Application Support / iPhone Simulator / IOSVERSION / Applications / APPID /Documents/file.txt
Pega esto en la terminal.
open ~/Library/Application/ Support/iPhone/ Simulator/
Si está utilizando Xcode 7 y superior, siga esto:
Directorio de documentos:
file:///Users/codercat/Library/Developer/CoreSimulator/Devices/YourProjectDict/data/Containers/Data/Application/(sample digit)7F53CFB3-C534-443F-B595-62619BA808F2/Documents/your file located here
Esto cambió con XCode 6 y iOS 6 y esto se complicó.
El directorio de documentos ahora está oculto dentro de:
~/Library/Developer/CoreSimulator/Devices/<some-id>/data/Containers/Data/Application/<some-other-id>
Parece que la ubicación está cambiando en cada inicio de la aplicación, por lo que es muy difícil de rastrear. Hay un consejo simple que tomé prestado de este artículo y que incluiré para los perezosos:
#if TARGET_IPHONE_SIMULATOR
// where are you?
NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
#endif
Agregue esto, por ejemplo, a su método de applicationDidFinishLaunching
, ¡debería hacerlo más fácil!
Si quieres más detalles, solo echa un vistazo al artículo original
NB: Sé que la pregunta es antigua, pero bueno, la encontré mientras buscaba, así que creo que agregar una respuesta actualizada puede ser útil para algunos de nosotros.