对象“RealmSwiftPermissionRole”上不存在主键属性“名称”
Posted
技术标签:
【中文标题】对象“RealmSwiftPermissionRole”上不存在主键属性“名称”【英文标题】:Primary key property 'name' does not exist on object 'RealmSwiftPermissionRole' 【发布时间】:2019-10-20 18:56:20 【问题描述】:我在我的 swift 项目中使用 RealmSwift 作为数据库。今天,在 Xcode-beta 版本 11 中打开我的项目后,我的应用程序崩溃并出现以下错误:
由于未捕获的异常“RLMException”而终止应用程序,原因:“
我的应用程序可以在以前版本的 Xcode(10.2.1) 上正常运行。 RealmSwiftPermissionRole 是 Realm 的一个类,我无权访问它。也许在他们的功能更新中,他们修复了这个错误,但现在,我搜索了很多但没有找到任何解决方案。 (我清理了项目,从模拟器中删除了应用程序,然后再次运行该项目,但没有任何改变。) 有什么建议吗?
【问题讨论】:
如果它在 10.2.1 而不是 11 中工作 BETA 那么问题很可能是您在 BETA 上构建项目软件。我建议在 11 正式发布之前回到 10.2.1。 不确定您指的是什么。如果您对为什么帖子被赞成或反对有疑问,请查看网站文档Why is voting important。我猜之所以会投反对票是因为在投反对票的同时表明相反的情况:该帖子包含错误信息、研究不足或未能传达信息,并且有很多关于构建的信息带有测试版软件的应用程序以及Realm & XCode 11 beta 【参考方案1】:ios 13 和 Xcode 11 存在可能导致此问题的问题。具有默认 String
值集的 Realm 类的所有 String 属性都以某种方式被忽略。
您可以通过更新到最新版本(当前为 3.20.0)然后在 Xcode 上解决此问题:Product -> Clean Build Folder。
如果您使用的是可可豆荚:
打开项目的 Podfile,将 RealmSwift 行替换为:
pod 'RealmSwift', '~> 4.4.1'
然后,在项目文件夹中打开终端,然后:
pod repo update
pod install
希望对您有所帮助。
【讨论】:
谢谢,将 RealmSwift 更新到 3.20.0 解决了问题 别忘了清理构建文件夹!【参考方案2】:Realm 的开发者已经开始开发Xcode 11 compatibility。从那个页面...
在 Xcode 测试版中使用 Realm 需要从源代码构建,并且通常需要使用开发分支而不是发布。
迦太基
github "realm/realm-cocoa" "tg/xcode-11-b1"
DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer carthage bootstrap -no-use-binaries
CocoaPods
pod 'Realm', git: 'https://github.com/realm/realm-cocoa.git', branch: 'tg/xcode-11-b1', submodules: true
pod 'RealmSwift', git: 'https://github.com/realm/realm-cocoa.git', branch: 'tg/xcode-11-b1', submodules: true
需要明确包含 Realm pod 作为依赖项,否则它将尝试使用最新版本的 obj-c 部分。
注意最后一句话。您必须将 Realm pod 作为依赖项包含在内,否则它将使用非 beta 版本并且无法正常工作。
【讨论】:
分支改为'master'【参考方案3】:我在 RealmSwift 4.3.1 中遇到了同样的问题,问题是我忘记将属性标记为 @objc
@objc dynamic var id = ""
【讨论】:
这也是我的问题【参考方案4】:也尝试删除并重新安装您的应用程序。
【讨论】:
我做了,但没有帮助 如果在领域类中出现错误,您是否也可以尝试更新您的 pod。以上是关于对象“RealmSwiftPermissionRole”上不存在主键属性“名称”的主要内容,如果未能解决你的问题,请参考以下文章