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, а не с устройством


person cyclingIsBetter    schedule 08.04.2011    source источник


Ответы (8)


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

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

/Users/ВАШ ПОЛЬЗОВАТЕЛЬ/Library/Application Support/iPhone Simulator/IOSVERSION/Applications/APPID/Documents/file.txt

person Jorge    schedule 08.04.2011
comment
Как узнать APPID? - person Pierre de LESPINAY; 02.10.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, должно быть проще!

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

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

person Romain Champourlier    schedule 07.12.2014

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

~/Library/Application Support/iPhone Simulator/YOUR-IOS-VERSION/Applications/UNIQUE-KEY-FOR-YOUR-APP/Documents
person Matthew Frederick    schedule 08.04.2011

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

person Vitalii    schedule 08.06.2016

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

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

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

person Scott Little    schedule 08.04.2011
comment
Я не уверен, что вы спрашиваете здесь - какой тип интерфейса? - person Scott Little; 08.04.2011
comment
все ок, я не писал * перед filePath - person cyclingIsBetter; 08.04.2011

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

open ~/Library/Application\ Support/iPhone\ Simulator/
person Robert    schedule 16.01.2014

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

 po [[[NSFileManager defaultManager] URLsForDirectory:9 inDomains:1] lastObject]
person Jong Su Park    schedule 27.01.2015

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