【问题标题】:How to set attribute of member object of a realm model?如何设置领域模型成员对象的属性?
【发布时间】:2017-07-25 07:39:55
【问题描述】:

我有一个名为 DiscoverUserInfo 的领域对象:

class DiscoverUserInfo: Object , Mappable{

    dynamic var UserObject:User?
    dynamic var ConnectionStatus:Int = -1
    var PreviousMeetings = List<Meeting>()

    required convenience init?(map: Map) {
        self.init()
    }

    override class func primaryKey() -> String? { return "UserObject.UserId" }

}

现在,我想设置一个主键 UserIdUserObject

但是当我运行这段代码时,我得到了这个错误:

由于未捕获的异常“RLMException”而终止应用程序,原因: '主键属性'UserObject.UserId'在对象上不存在 '发现用户信息''

【问题讨论】:

    标签: swift realm


    【解决方案1】:

    您不能使用动态变量的属性设置主键。你必须这样做:

    class DiscoverUserInfo: Object , Mappable{
    
        dynamic var UserObject: User?
        dynamic var id = ""
        dynamic var ConnectionStatus:Int = -1
        var PreviousMeetings = List<Meeting>()
    
        required convenience init?(map: Map) {
        self.init()
         }
    
    override class func primaryKey() -> String? { 
         return "id" 
         }
    
    }
    

    然后在每次创建新的 DiscoverUserInfo 对象时将 id 设置为关联的 UserObject 的 UserId。

    这与 Realm 中不支持复合主键的问题有关。但是,我们希望在未来看到此功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      相关资源
      最近更新 更多