对象“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) 上正常运行。 RealmSwiftPermissionRoleRealm 的一个类,我无权访问它。也许在他们的功能更新中,他们修复了这个错误,但现在,我搜索了很多但没有找到任何解决方案。 (我清理了项目,从模拟器中删除了应用程序,然后再次运行该项目,但没有任何改变。) 有什么建议吗?

【问题讨论】:

如果它在 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”上不存在主键属性“名称”的主要内容,如果未能解决你的问题,请参考以下文章

JS内置对象-String对象Date日期对象Array数组对象Math对象

qt全局对象删除

JS 三大对象 (本地对象内置对象 宿主对象)

JS 三大对象 (本地对象内置对象 宿主对象)

面向对象设计-精通随笔-值对象和引用对象

JavaScript认识对象,创建对象,遍历对象