Подтвердить что ты не робот

Использование основных данных с watchOS 2.0

Я сделал приложение iOS/Apple Watch с WatchKit 1.0, в котором используется общий групповой контейнер и настраиваемая инфраструктура для доступа к одному и тому же хранилищу основных данных. Теперь, в руководстве по переходу на watchOS 2.0, Apple говорит следующее:

Если ваше существующее приложение Watch и приложение iOS используют общий групповой контейнер или iCloud для обмена данными, вы должны изменить способ обмена этими данными в watchOS 2. Поскольку расширение WatchKit теперь работает на Apple Watch, расширение должно обмениваться данными с беспроводным приложением iOS. Вы можете сделать это с помощью объекта NSURLSession или с помощью платформы Watch Connectivity, которая поддерживает двунаправленную связь между вашим приложением iOS и расширением WatchKit.

Как это работает с Core Data? Нужно ли мне поддерживать два отдельных магазина, один в папке "Документы" на часах и один на телефоне, и использовать фреймворк Watch Connectivity для синхронизации изменений? Я вижу, что watchOS 2.0 может получить доступ к инфраструктуре Core Data (это в списке Доступные технологии)... но я просто не уверен, как это помогает, когда магазин находится по телефону. Любая помощь/руководство оценено!

4b9b3361

Ответ 1

Да, вам нужно будет поддерживать два отдельных магазина. Если одна из сторон является клиентом только для чтения, а хранилище данных CoreData мало и редко изменяется, вы можете использовать API-интерфейс TransferFile WatchConnectivity для переноса всего хранилища каждый раз, когда он изменяется.

Ответ 2

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

Сессия 713 WWDC - Знакомство с Watch Connectivity охватывает необходимые механизмы. Nice API, который они создали вместе.