我在swift项目中使用RealmSwift作为数据库。今天,在Xcode-beta版本11中打开我的项目后,我的应用程序崩溃并出现以下错误:
由于未捕获异常“RLMException”,正在终止应用程序,原因:'对象' RealmSwiftPermissionRole '上不存在主键属性'name''
我的应用在之前版本的Xcode(10.2.1)上运行正常。RealmSwiftPermissionRole是来自Realm的类,我无法访问它。也许在他们的功能更新中,他们修复了这个bug,但现在,我搜索了很多,但没有找到任何解决方案。(我清理了项目,从模拟器中删除了应用,并再次运行项目,但没有任何变化。)有什么建议吗?
5条答案
按热度按时间iovurdzv1#
iOS 13和Xcode 11有一个问题可能会导致此问题。Realm类的所有字符串属性都被默认设置为
String
。您可以通过更新到最新版本(当前为3.20.0)来修复此问题,然后在Xcode上:产品-〉全新构建文件夹。如果您使用可可豆:
打开项目的Podfile,并将RealmSwift行替换为:
然后,在项目文件夹中打开终端,并:
2hh7jdfx2#
Realm的开发人员已经开始在Xcode 11 compatibility上工作。
在Xcode测试版中使用Realm需要从源代码构建,并且通常需要使用dev分支而不是releases。
"迦太基"
第一个月
DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer carthage bootstrap -no-use-binaries
可可豆
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作为一个依赖项,否则它将使用非beta版本,并且它不会工作。
rta7y2nd3#
我在RealmSwift 4.3.1中也遇到过同样的问题,问题是我忘记将属性标记为 @objc
ar5n3qh54#
尝试删除并重新安装应用程序。
v1l68za45#
对我来说,
正在将领域更新为
pod 'RealmSwift', '~> 3.20.0'
并更新
pod install
对我有用。