Подтвердить что ты не робот

Xcode: файл каталога для симулятора Iphone

Я хочу написать строку в файле "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, а не с помощью устройства

4b9b3361

Ответ 1

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

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

/Пользователи/ YOURUSER/Library/Поддержка приложений/Симулятор iPhone/ IOSVERSION/Приложения/ APPID/Documents/file.txt p >

Ответ 2

Это изменилось с 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, сделайте это проще!

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

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

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

Но, не делать это в приложении для доставки, он не работает.

Ответ 7

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

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

Ответ 8

Если вы используете 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