Xcode: archivo de directorio para simulador Iphone
Quiero escribir una cadena en un archivo " archivo.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 simulator xcode, no con device
8 answers
No estoy seguro de si puede escribir en su paquete, pero puede hacerlo en su directorio de documentos como lo hace su código. ¿Por qué no pruebas esto?
Use el mismo código y encontrará su archivo en:
/Users/ YOURSER/Library/Application Support/iPhone Simulator/ IOSVERSION/Applications/ APPID/Documents/file.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-08 09:28:31
Esto cambió con XCode 6 e iOS 6 y esto se volvió complicado.
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 applicationDidFinishLaunching
, ¡debería hacerlo más fácil!
Si desea más detalles, solo eche un vistazo a la 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 servir a algunos de nosotros!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-07 18:21:26
El directorio de documentos de su aplicación en el simulador se encuentra en;
~/Library/Application Support/iPhone Simulator/YOUR-IOS-VERSION/Applications/UNIQUE-KEY-FOR-YOUR-APP/Documents
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-08 09:29:18
Deténgase en un punto de interrupción en cualquier lugar de su aplicación y escriba "po NSHomeDirectory()" en el depurador. Use la función Ir > Ir a la carpeta del Finder para saltar directamente allí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-08 09:15:44
Con el código de ejemplo que tienes aquí no escribirá en tu carpeta de Recursos, sino en la carpeta de Documentos del Simulador, que es en realidad donde deberías escribir en el dispositivo, pero como mencionas que solo quieres hacer esto en el simulador, podrías usar
filePath = [[NSBundle mainBundle] bundlePath] stringByAppendingPathComnponent:@"Resources"]
Pero, no haga esto en una aplicación de envío, fallará.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-08 09:34:00
Pegue esto en el terminal.
open ~/Library/Application\ Support/iPhone\ Simulator/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-19 21:06:11
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]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-27 07:29:10
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-01 07:34:28