2011-04-08 23 views
23

Quiero escribir una cadena en un archivo "archivo.txt": este archivo en mi proyecto (para Iphone) está dentro de los recursos; Intento escribir una cadena en este archivo pero no funciona, le muestro mi código.Xcode: ficha del directorio para el simulador de Iphone

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 Xcode simulador, con aparato

Respuesta

49

no estoy seguro de si usted es capaz de escribir en su conjunto, pero que pueda en su directorio de documentos en cambio, como su código hace. ¿Por qué no pruebas esto?

utilizan el mismo código y encontrará su archivo en:

/Usuarios/YOURUSER Soporte/Library/Application Support/simulador de iPhone/IOSVERSION/Aplicaciones/APPID /Documents/file.txt

+0

ah bien, funciona, gracias .... – CrazyDev

+0

¿Cómo saber el APPID? –

15

el directorio de documentos para su aplicación en el simulador está situado en;

~/Library/Application Support/iPhone Simulator/YOUR-IOS-VERSION/Applications/UNIQUE-KEY-FOR-YOUR-APP/Documents 
2

Con el código de ejemplo que usted tiene aquí no va a escribir en la carpeta de recursos, pero en la carpeta Documentos del simulador, que en realidad es donde se debe escribir en el dispositivo, pero como usted menciona que sólo se desee hacer esto en el simulador, se puede usar

filePath = [[NSBundle mainBundle] bundlePath] stringByAppendingPathComnponent:@"Resources"] 

Pero, no hacer esto en una aplicación de envío, se producirá un error.

+0

tipo de interfaz no se puede asignar estáticamente .... ¿por qué? – CrazyDev

+0

No estoy seguro de lo que está preguntando aquí, ¿qué tipo de interfaz? –

+0

todo está bien, no escribí "*" antes de filePath – CrazyDev

3

Pegue esto en el terminal.

open ~/Library/Application\ Support/iPhone\ Simulator/ 
19

Esto cambió con XCode 6 y el IOS 6 y esto tiene difícil.

El directorio de documentos ahora están ocultos dentro:

~/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 una simple sugerencia me prestó this article y que incluirá a los perezosos:

#if TARGET_IPHONE_SIMULATOR 
// where are you? 
NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); 
#endif 

Añadir este, por ejemplo, a su método de applicationDidFinishLaunching, debería hacer más fácil!

Si desea más detalles, sólo echar un vistazo a la NB original article

: Sé que la pregunta es viejo, pero bueno, me encontré durante la búsqueda, así que creo que la adición de una respuesta actualizada puede servir para algo ¡de nosotros!

0

En el BGF, el proceso se detiene y pegar, a continuación, se imprimirá la ubicación de los documentos. [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]

po [[[NSFileManager defaultManager] URLsForDirectory:9 inDomains:1] lastObject] 
0

Si está usando Xcode 7 y superior sigue este:

Documentos Directorio:

file:///Users/codercat/Library/Developer/CoreSimulator/Devices/YourProjectDict/data/Containers/Data/Application/(sample digit)7F53CFB3-C534-443F-B595-62619BA808F2/Documents/your file located here 
8

parada en un punto de interrupción en cualquier lugar de su aplicación y el tipo "po NSHomeDirectory()" en el depurador Use la función Ir> Ir a la carpeta del Finder para saltar directamente allí. how the "po NSHomeDirectory()" command in debugger shows path to current app's home directory

Cuestiones relacionadas