Я делаю приложение для Apple Watch с WatchKit.Расширение WatchKit с проблемами синхронизации Coredata
У меня есть единственный объект NSManagedObject, из которого получают как приложение на телефоне, так и приложение на часах. В базе данных должен быть только один объект этого типа, поэтому обе цели должны иметь доступ к одному и тому же объекту в хранилище, хотя, очевидно, не тот же экземпляр.
Все это прекрасно работает, они могут прекрасно читать этот объект, используя группу приложений для совместного использования файла SQL. Проблема в том, что, когда приложение меняет объект, я хочу, чтобы часы сразу его забирали, чтобы он мог обновить свой интерфейс.
Я использую MMWormhole для отправки уведомления о часах, когда объект сохраняется, когда это произойдет, я затем делаю новую выборку в контексте в расширении. Однако, когда я делаю эту выборку, ни одна из данных об объекте не изменилась в расширении, чтобы отразить состояние объекта в приложении. Это все так же, как и до того, как в приложении было вызвано сохранение.
Итак, во-первых, есть ли способ уведомления в расширении CoreData в приложении без использования MMWormhole? Но что еще более важно, что я делаю неправильно, чтобы закончить старые данные в моем последующем запросе выборки в расширении? Я бы подумал, что выбор из контекста будет запрашивать хранилище, и поскольку оба приложения указывают на один и тот же файл db, он будет собирать новые данные. Есть ли задержка после сохранения, запросы на выборки кэшированы каким-то образом или я просто что-то недопонимаю?