我从服务器导入唯一对象,同时使用iOSLocalId
创建离线本地对象,这是我的离线本地ID。
我将此功能用于唯一导入:
public class func uniqueID(from source: ImportSource, in transaction: BaseDataTransaction) throws -> UniqueIDType? {
return source["id"] as? UniqueIDType
}
我的问题是我可以指定
之类的唯一ID吗?public class func uniqueID(from source: ImportSource, in transaction: BaseDataTransaction) throws -> UniqueIDType? {
return source["iOSLocalId"] as? UniqueIDType
}
我需要这个来绑定两个对象。本地(已离线创建),并且从服务器收到了相同的信息。
所以工作流程是下一个:
iOSLocalId
,但不包含服务器ID,例如我们离线工作时在这种情况下,我需要以某种方式告诉CoreStore我有两个唯一ID,一个是本地的,哪台服务器也传回给我,一个是同一对象的服务器ID。
但是也许还有另一种方法。
确保我可以编写自己的服务,该服务将搜索已经存在的本地对象并对其进行更新。
也许我可以使用其中一些功能:
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
}
但是正如我说的那样,每次找到服务器ID时我都需要更新,但是在脱机同步的情况下,我也有本地ID,然后就存在确定唯一ID的问题。