RealmSwift:在使用主键保存关系对象时发出问题

时间:2016-05-31 15:25:13

标签: ios swift realm

我正在尝试使用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)来保存媒体。 我认为它可以处理关系,但它不是通过它看起来的。

有关如何解决的任何线索? 欢呼声。

0 个答案:

没有答案