Возможности синхронизации в автономном режиме CoreStore - PullRequest
0 голосов
/ 02 мая 2019

Я импортирую уникальные объекты с сервера и одновременно создаю автономные локальные объекты с iOSLocalId, который является моим автономным локальным идентификатором.

Я использую эту функцию для уникального импорта:

public class func uniqueID(from source: ImportSource, in transaction: BaseDataTransaction) throws -> UniqueIDType? {
        return source["id"] as? UniqueIDType
    }

мой вопрос: можно ли указать несколько уникальных идентификаторов, таких как

public class func uniqueID(from source: ImportSource, in transaction: BaseDataTransaction) throws -> UniqueIDType? {
        return source["iOSLocalId"] as? UniqueIDType
    }

Мне нужно это для привязки двух объектов.Локальный (который был создан в автономном режиме) и тот же полученный от сервера.

Таким образом, рабочий процесс следующий:

  1. Создать локальный объект, который содержит только iOSLocalId, но не содержит идентификатор серверакак мы работаем в автономном режиме, например
  2. Когда подключение кажется подключенным к сети, отправьте локальный объект на сервер.
  3. Когда API вернет обратно созданный объект на сервер, синхронизируйте локальный и серверный объект.

В этом случае мне нужно как-то сообщить CoreStore, что у меня есть два уникальных идентификатора: один локальный, который сервер также передает мне, а другой - идентификатор сервера для того же объекта.

Но, возможно, есть другойПодходят также.

Конечно, я могу написать свой собственный Сервис, который будет искать уже существующий локальный объект и обновлять их.

Может быть, я смогу использовать некоторые из этих функций:

public static func shouldInsert(from source: ImportSource, in transaction: BaseDataTransaction) -> Bool {
        return shouldUpdate(from: source, in: transaction)
    }

    public static func shouldUpdate(from source: ImportSource, in transaction: BaseDataTransaction) -> Bool {
        return true
    }

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

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