首页 Realm 报错闪退: 'RLMException', reason: 'Primary key property 'identity' does not exist on object 'RealmSwiftPermissionUser''
文章
取消

Realm 报错闪退: 'RLMException', reason: 'Primary key property 'identity' does not exist on object 'RealmSwiftPermissionUser''

今天维护旧项目, 调试时候启动就直接闪退, 并有一下报错信息:

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 这个类未设置 identityfunc 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 版本即可.

本文由作者按照 CC BY 4.0 进行授权