今天维护旧项目, 调试时候启动就直接闪退, 并有一下报错信息:
RLMException', reason: 'Primary key property 'identity' does not exist on object 'RealmSwiftPermissionUser''
Realm 继承自 RLMObject 或者 Object 的每个类都必须实现如下方法:
1
2
3
public override class func primaryKey() -> String {
    return "Primary key"
}
该方法返回本地存储表内作为 主键 属性的属性名.
报错信息就是讲 RealmSwiftPermissionUser 这个类未设置 identity 为 func primaryKey() -> String 方法的返回值.
全局搜索以下仅仅找到如下一次代码:
1
2
3
4
5
6
7
8
9
// 省略部分代码
@objc(RealmSwiftPermissionUser)
public class PermissionUser: Object {
    @objc dynamic public var identity = ""
    @objc override public class func primaryKey() -> String {
        return "identity"
    }
}
@objc(RealmSwiftPermissionUser) 的作用此处不做介绍.
此处已经实现了相关必须方法, 只好更新 Realm 版本.
更新后问题得到解决了.
据网上查找相关内容, 只有 Xcode11 才有闪退的问题, 有遇到相同问题的更新 Realm 版本即可.