Я импортирую уникальные объекты с сервера и одновременно создаю автономные локальные объекты с 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
}
Мне нужно это для привязки двух объектов.Локальный (который был создан в автономном режиме) и тот же полученный от сервера.
Таким образом, рабочий процесс следующий:
- Создать локальный объект, который содержит только
iOSLocalId
, но не содержит идентификатор серверакак мы работаем в автономном режиме, например - Когда подключение кажется подключенным к сети, отправьте локальный объект на сервер.
- Когда 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
}
Но, как я уже сказал, мне нужно обновляться каждый раз, когда я обнаруживаю идентификатор сервера, но в случае автономной синхронизации у меня также есть локальный идентификатор, а затем возникает проблема определения уникального идентификатора.