Использование константы NSDocumentDirectory
фактически даст вам / var / mobile / Documents при запуске приложения для джейлбрейка.Было бы плохой политикой помещать документы вашего приложения прямо туда, даже если вы думаете, что они названы уникально.
Если вы посмотрите на содержимое папки / var / mobile / Library /, вы увидите, что данные хранятся во многих приложениях, включая приложения для джейлбрейка.Мне не ясно, есть ли такая удобная константа, как NSDocumentDirectory
, которую вы можете использовать для ее получения.Но вы всегда можете жестко закодировать ваш источник для поиска файлов в @"/var/mobile/Library/APPNAME"
.Маловероятно, что эта папка изменится (и если это произойдет, она, вероятно, сломает другие приложения, и, безусловно, ее легко исправить).
Если вы посмотрите на документ , на который вы ссылаетесь , он указывает:
Приложение Appstore имеет папку «Документы», которая создается в процессе установки.Взломанное приложение не делает.Это зависит от приложения, чтобы создать свою собственную папку.Если вам нужен этот тип папки, вы должны создать его с помощью простой команды mkdir в вашей функции applicationDidFinishLaunching.Просто добавьте простую функцию: mkdir («/ var / mobile / Library / YOURAPPNAME», 0755);Если папка уже существует, никакого вреда не будет.Вы хотите сделать это, потому что процесс установки запускается от имени пользователя root, а приложение запускается от имени пользователя mobile.Если Cydia сделает это за вас, у папки будут неправильные разрешения.
... , поэтому вам нужно создать этот подкаталог самостоятельно .Этого не будет, если вы этого не сделаете.
По моему опыту, написание приложений для джейлбрейка просто включает некоторые из этих немного вонючих методов кодирования (пути жесткого кодирования и их создание самостоятельно) ... это может быть просто что-тонам нужно разобраться.
Обновление: обязательно посмотрите комментарий Саурика ниже.