Как уведомить контроллер выбранных результатов одной цели об изменениях, произошедших в контексте управляемого объекта другой цели? - PullRequest
0 голосов
/ 27 сентября 2019

Параллельно работают две цели, которые имеют общую базу данных.Допустим, я создал объект, используя контекст target1, и добавил его в базу данных.Как мне обновить NSFetchedResultsController в target2 о произошедшем изменении?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Изменение, внесенное другим процессом, называется удаленным изменением, оно может обрабатываться двумя способами:

  1. mergeChangesFromRemoteContextSave однако, если 1-е приложение вносит существенные изменения в своеВ этом случае вам может не потребоваться объединить все эти данные в контекст второго приложения, поэтому Apple добавила следующую опцию.
  2. Постоянное отслеживание истории позволяет фильтровать изменения вбаза данных (не только ее контекст), созданная первым приложением, и импортирующая только во второй контекст приложения, которые в настоящее время или должны обрабатываться FRC.
0 голосов
/ 27 сентября 2019

Контроллер полученных результатов наблюдает за изменениями в (главном) контексте.Поскольку ваши 2 приложения имеют собственный основной контекст, любые изменения не будут передаваться друг другу.

Вы бы предпочли, чтобы FRC обновлялся, когда пользователь возвращается в приложение, которое было в фоновом режиме, а не обновлял его, когда оно находится в фоновом режиме, потому что это привело бы к закрытию приложения в любом случае..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...