Xcode: fichier répertoire pour simulateur Iphone

je veux écrire une chaîne dans un fichier".txt": ce fichier dans mon projet (pour Iphone) est des ressources internes; j'essaie d'écrire une chaîne de caractères dans ce fichier mais il ne fonctionne pas, je montre mon code.

 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];

je veux écrire dans ce fichier avec le simulateur de xcode, pas avec l'appareil

23
demandé sur CrazyDev 2011-04-08 13:21:31

8 réponses

Je ne suis pas sûr si vous êtes capable d'écrire dans votre paquet, mais vous pouvez dans votre répertoire de Documents à la place comme votre code le fait. Pourquoi n'essayez-vous pas cela?

Utiliser le même code et vous trouverez votre fichier dans:

/ Users/ YOURUSER/Library/Application Support/Simulateur d'iPhone/IOSVERSION/Applications/ APPID/Documents/fichier.txt

49
répondu Jorge 2011-04-08 09:28:31

cela a changé avec XCode 6 et iOS 6 et cela est devenu délicat.

le répertoire des documents est maintenant caché dans:

~/Library/Developer/CoreSimulator/Devices/<some-id>/data/Containers/Data/Application/<some-other-id>

il semble que l'emplacement change à chaque début d'application, donc c'est vraiment difficile à suivre. Il y a un conseil simple que j'ai emprunté à cet article et que je vais l'inclure pour les paresseux:

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

ajoutez ceci par exemple à votre applicationDidFinishLaunching méthode, ça devrait être plus facile!

Si vous vous souhaitez plus de détails, jetez un oeil à l' article original

NB: je sais que la question Est ancienne, mais bon, je l'ai trouvée en cherchant, donc je pense que l'ajout d'une réponse mise à jour pourrait servir à certains d'entre nous!

19
répondu rchampourlier 2014-12-07 18:21:26

le répertoire des Documents de votre application dans le simulateur est situé à;

~/Library/Application Support/iPhone Simulator/YOUR-IOS-VERSION/Applications/UNIQUE-KEY-FOR-YOUR-APP/Documents
15
répondu Matthew Frederick 2011-04-08 09:29:18

arrêtez - vous à un point de rupture n'importe où dans votre application et tapez "po NSHomeDirectory()" dans le débogueur. Utilisez la fonction Go > Go to Folder pour sauter directement là. how the "po NSHomeDirectory()" command in debugger shows path to current app's home directory

8
répondu Vitalii 2016-06-08 09:15:44

avec le code d'exemple que vous avez ici, il ne sera pas écrit dans votre dossier Ressources, mais dans le dossier Documents du simulateur, qui est en fait où vous devriez écrire sur le périphérique, mais comme vous mentionnez que vous voulez seulement le faire sur le simulateur, vous pouvez utiliser

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

Mais ne pas faites ceci dans une application d'expédition, elle échouera.

2
répondu Scott Little 2011-04-08 09:34:00

collez ceci dans le terminal.

open ~/Library/Application\ Support/iPhone\ Simulator/
2
répondu Robert 2014-04-19 21:06:11

dans gdb, arrêter le processus et le coller, puis l'emplacement des Documents sera imprimé. [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]

 po [[[NSFileManager defaultManager] URLsForDirectory:9 inDomains:1] lastObject]
0
répondu Jong Su Park 2015-01-27 07:29:10

si vous utilisez Xcode 7 et plus:

Répertoire De Documents:

file:///Users/codercat/Library/Developer/CoreSimulator/Devices/YourProjectDict/data/Containers/Data/Application/(sample digit)7F53CFB3-C534-443F-B595-62619BA808F2/Documents/your file located here
0
répondu codercat 2016-02-01 07:34:28