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, а не с помощью устройства
Ответы
Ответ 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