Как получить путь постоянного хранилища основных данных в цели расширения WatchKit

Я разработал приложение для iOS, которое использует инфраструктуру Core Data и сохраняет постоянное хранилище в каталоге документов приложения. В список приложений я могу получить постоянный путь к хранилищу, используя следующий метод:

- (NSString *)applicationDocumentsDirectory {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

Затем я создал новую цель расширения WatchKit и хочу получить постоянное хранилище, сохраненное приложением iOS, но когда я пытаюсь использовать описанный выше метод в контроллере интерфейса расширения часов, он возвращает другой путь.

Как я могу найти постоянный путь магазина приложения iOS в цели расширения watchkit?

1 ответ

Решение

Расширение WatchKit не будет иметь разрешения на доступ к хранилищу основных данных в каталоге документов вашего приложения, поскольку оно находится за пределами изолированной программной среды расширения.

Если вы хотите, чтобы ваше расширение могло иметь доступ к хранилищу данных, вам нужно поместить его в место, к которому могут обращаться как приложение, так и расширение. Я рекомендую ознакомиться с контейнерами группы приложений (раздел "Совместное использование данных с вашим приложением"), которые были добавлены для этой цели, чтобы делиться файлами между связанными приложениями и расширениями.

Другие вопросы по тегам