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
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
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!
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
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à.
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.
collez ceci dans le terminal.
open ~/Library/Application\ Support/iPhone\ Simulator/
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]
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