Доступ к папке "Документы приложений" из Today Extension
Я успешно делил данные между моим приложением и его расширением Today через userDefaults, но у меня возникают проблемы с фактическими файлами, находящимися в папке "Документы приложений".
Когда я использую этот код в своем приложении:
var documentsDir:NSString = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
он возвращает:
/var/mobile/Containers/Data/Application/296494AA-946C-40E0-8646-F0895E131DCB/Documents/
но в расширении возвращается:
/var/mobile/Containers/Data/PluginKitPlugin/AB484342-537A-4CE7-9EF3-F2CAE352C8A3/Documents/
и, очевидно, файлов там нет.
Я где-то читал, что должен использовать:
let containerURL = manager.containerURLForSecurityApplicationGroupIdentifier("group.com.company.app")
let filePath = containerURL.path
но он возвращает:
/private/var/mobile/Containers/Shared/AppGroup/CD7CF610-EB5F-4246-8D30-D7F8BFA6A219
который тоже не работает.
Как я могу получить мое расширение iOS 8 Today для чтения его файлов приложений-контейнеров, расположенных в документах?
Спасибо!
Ответы
Ответ 1
Вы не можете получить доступ к папке документов содержащего приложения из расширения.
Но вы можете создать общий контейнер, к которому можно получить доступное приложение и все его расширение.
Вы находитесь на правильном пути, используя containsURLForSecurityApplicationGroupIdentifier. Вам просто нужно использовать это как в приложении, так и в расширении. Он не имеет доступа к папке документов, а к другому контейнеру.
Если вы обновляете существующее приложение, которое хранит данные в папке с документами, вам нужно будет переместить данные в s8-today-extension
Посмотрите эту ссылку.
http://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/