je veux écrire une chaîne dans un fichier "file.txt": ce fichier dans mon projet (pour Iphone) est à l'intérieur des ressources; J'essaie d'écrire une chaîne dans ce fichier mais ça ne marche 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 xcode, pas avec l'appareil
Je ne sais pas si vous êtes capable d'écrire dans votre bundle, mais vous pouvez le faire dans votre répertoire Documents à la place comme le fait votre code. Pourquoi n'essayez-vous pas cela?
Utilisez le même code et vous trouverez votre fichier dans:
/ Users/ [~ # ~] youruser [~ # ~] /Library/Application Support/iPhone Simulator/ [~ # ~] iosversion [~ # ~] /Applications/ [~ # ~] appid [~ # ~] /Documents/fichier.txt
Cela a changé avec XCode 6 et iOS 6 et cela est devenu délicat.
Le répertoire des documents est désormais masqué dans:
~/Library/Developer/CoreSimulator/Devices/<some-id>/data/Containers/Data/Application/<some-other-id>
Il semble que l'emplacement change à chaque démarrage de l'application, il est donc très difficile de suivre. Il y a une astuce simple que j'ai empruntée à cet article et que j'inclurai 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 méthode applicationDidFinishLaunching
, cela devrait vous faciliter la tâche!
Si vous voulez plus de détails, jetez un œil au article d'origine
NB: Je sais que la question est ancienne, mais bon, je l'ai trouvée lors de la recherche, donc je pense que l'ajout d'une réponse mise à jour peut être utile à certains d'entre nous !
Le répertoire Documents de votre application dans le simulateur se trouve à;
~/Library/Application Support/iPhone Simulator/YOUR-IOS-VERSION/Applications/UNIQUE-KEY-FOR-YOUR-APP/Documents
Avec l'exemple de code que vous avez ici, il n'écrira pas dans votre dossier Ressources, mais dans le dossier Documents du simulateur, qui est en fait l'endroit où vous devez écrire sur l'appareil, mais comme vous le mentionnez, vous ne voulez le faire que sur le simulateur , vous pouvez utiliser
filePath = [[NSBundle mainBundle] bundlePath] stringByAppendingPathComnponent:@"Resources"]
Mais, ne pas faire cela dans une application d'expédition, cela échouera.
Collez-le dans le terminal.
open ~/Library/Application\ Support/iPhone\ Simulator/
Si vous utilisez Xcode 7 et supérieur, procédez comme suit:
Répertoire des 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
Dans gdb, arrêtez le processus et collez-le, puis l'emplacement des documents sera imprimé. [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]
po [[[NSFileManager defaultManager] URLsForDirectory:9 inDomains:1] lastObject]