Xcode: каталог файлов для симулятора Iphone - PullRequest
24 голосов
/ 08 апреля 2011

я хочу написать строку в файле "file.txt": этот файл в моем проекте (для 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];

Я хочу написать в этом файле с симулятором xcode, а не с устройством

Ответы [ 8 ]

49 голосов
/ 08 апреля 2011

Я не уверен, что вы можете писать в своем пакете, но вы можете сделать это в своем каталоге документов, как это делает ваш код.Почему бы вам не попробовать это?

Используйте тот же код, и вы найдете свой файл в:

/ Users / YOURUSER / Библиотека / Поддержка приложений / iPhone Simulator/IOSVERSION/Applications/APPID/Documents/file.txt

19 голосов
/ 07 декабря 2014

Это изменилось с XCode 6 и iOS 6, и это стало хитрым.

Каталог документов теперь скрыт внутри:

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

Кажется, расположениеменяется при каждом запуске приложения, так что это действительно сложно отследить.Есть простой совет, который я позаимствовал у этой статьи и который я включу для ленивых:

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

Добавьте это, например, к своему методу applicationDidFinishLaunching, это должно упростить его!

Если вам нужны подробности, просто взгляните на оригинальную статью

Примечание: я знаю, что вопрос старый, но я нашелэто во время поиска, поэтому я думаю, что добавление обновленного ответа может послужить некоторым из нас!

15 голосов
/ 08 апреля 2011

Каталог документов для вашего приложения в симуляторе находится по адресу;

~/Library/Application Support/iPhone Simulator/YOUR-IOS-VERSION/Applications/UNIQUE-KEY-FOR-YOUR-APP/Documents
8 голосов
/ 08 июня 2016

Остановитесь на точке останова в любом месте вашего приложения и введите «po NSHomeDirectory ()» в отладчике. Используйте функцию Finder Go> Go To Folder, чтобы перейти прямо туда. how the

2 голосов
/ 08 апреля 2011

С примером кода, который у вас есть, он будет записываться не в вашу папку «Ресурсы», а в папку «Документы» симулятора, которая на самом деле является той, где вы должны писать на устройстве, но, как вы упомянули, вы хотите сделать это только на симуляторе вы можете использовать

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

Но, не делайте это в приложении доставки, оно потерпит неудачу.

1 голос
/ 16 января 2014

Вставьте это в терминал.

open ~/Library/Application\ Support/iPhone\ Simulator/
0 голосов
/ 01 февраля 2016

Если вы используете Xcode 7 и выше, выполните следующие действия:

Каталог документов:

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 голосов
/ 27 января 2015

В gdb остановите процесс и вставьте его, после чего будет напечатано расположение документов. [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]

 po [[[NSFileManager defaultManager] URLsForDirectory:9 inDomains:1] lastObject]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...