我正在尝试使用Realm和ObjectMapper。
我有这两个模型:
class User : Object, Mappable {
override class func primaryKey() -> String {
return "id"
}
dynamic var id : String
[...]
func mapping(_ map: Map) {
id <- map["id"]
}
}
class Media, Object, Mappable {
override class func primaryKey() -> String {
return "id"
}
dynamic var id : String
dynamic var owner : VPUser?
[...]
func mapping(_ map: Map) {
id <- map["id"]
owner <- map["owner"]
}
}
创建一个用户对象很好(即登录):JSON被正确映射,领域插入也很好。
当我远程获取媒体时出现问题。 每个 Media 对象都包含一个用户对象(所有者)。
这就是媒体JSON的样子:
{
"id": "574cd4e6e4b0b7e43219664a",
"owner": {
"id": "574cd462e4b0b7e432196644",
}
}
现在,具有该ID的 User 对象可能已经存在, 因此我得到了这个例外:
Can't set primary key property 'id' to existing value...'
注意:我正在使用Realm.create(_, update: true)
来保存媒体。
我认为它可以处理关系,但它不是通过它看起来的。
有关如何解决的任何线索? 欢呼声。