我有一个名为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" }
}
现在,我想设置一个UserId
UserObject
的主键。
但是当我运行此代码时,我收到此错误:
由于未捕获的异常终止应用&#39; RLMException&#39;,原因: &#39;主键属性&#39; UserObject.UserId&#39;在对象上不存在 &#39; DiscoverUserInfo&#39;&#39;
答案 0 :(得分:0)
您无法使用动态变量的属性设置主键。你必须做这样的事情:
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中对复合主键没有本机支持的问题有关。但是,我们希望看到这个功能。