主键属性“名称”在对象“ RealmSwiftPermissionRole”上不存在

时间:2019-06-05 09:13:59

标签: xcode realm

我在我的swift项目中使用RealmSwift作为数据库。今天,在Xcode-beta版本11中打开我的项目后,我的应用因以下错误而崩溃:

  

由于未捕获的异常'RLMException'而终止应用程序,原因:对象'RealmSwiftPermissionRole'中不存在'主键属性'name'

我的应用程序在Xcode(10.2.1)的早期版本上可以正常运行。 RealmSwiftPermissionRole Realm 中的一类,我无权访问。也许在他们的功能更新中,他们修复了此错误,但就目前而言,我进行了很多搜索,但未找到任何解决方案。 (我清理了该项目,从模拟器中删除了该应用,然后再次运行了该项目,但未做任何更改。) 有什么建议吗?

4 个答案:

答案 0 :(得分:55)

iOS 13和Xcode 11存在问题,可能会导致此问题。设置了默认String值的Realm类的所有String属性都被忽略了。 您可以通过更新到最新版本(当前为3.20.0),然后在Xcode上解决此问题:产品->清洁生成文件夹

如果您使用的是可可豆荚:

打开项目的Podfile,并将RealmSwift行替换为:

pod 'RealmSwift', '~> 3.20.0'

然后,打开项目文件夹中的终端,然后:

pod repo update
pod install

希望有帮助。

答案 1 :(得分:6)

Realm的开发人员已开始研究Xcode 11 compatibility。从该页面...

  

将Realm与Xcode Betas结合使用需要从源代码进行构建,并且通常需要使用dev分支而不是发行版。

     

迦太基

     

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版本,它将无法正常工作。

答案 2 :(得分:6)

我在RealmSwift 4.3.1中遇到了相同的问题,问题是我忘记了将该属性标记为 @objc

@objc dynamic var id = ""

答案 3 :(得分:0)

也尝试删除并重新安装您的应用程序。