RealmObject Equatable冗余消息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RealmObject Equatable冗余消息相关的知识,希望对你有一定的参考价值。
我们有一个简单的类qazxsw poi,它继承自qmsxsw poi领域。现在我们希望该子类符合Person
协议。非常简单的代码看起来像这样。
Object
我们从领域版本0.98.8开始,一切都按预期工作。当我们更新到版本0.102.0(以及其他版本之间)时,会出现编译器错误消息
Equatable
不够奇怪,如果降级回版本0.98.8,错误仍然存在。另一个奇怪的行为,在我们的一个开发者机器上,相同的代码编译得很好。
经过一些研究,我们不知道发生了什么,以及如何解决或解决这个问题。
最新版本的class Person: Object, Equatable {
dynamic var localID = "0"
dynamic var name:String?
}
func ==(lhs: Person, rhs: Person) -> Bool {
return lhs.localID == rhs.localID
}
默认使用Error: Redundant conformance of ‚Person‘ to protocol ‚Equatable‘
,你可以从RealmSwift
代码查看Equatable
。
要覆盖默认的Object.swift
行为,您可以覆盖此函数:
RealmSwift
之后,使用Equatable
的现有Swift代码将根据public override func isEqual(object: AnyObject?) -> Bool
中定义的自定义条件返回结果。无需手动创建==
。
它仍然使用isEqual
,因为从func ==
子类化的isEqual
,而不是纯粹的Swift对象。
Swift 4的更新签名是:
RLMObjectBase
在NSObject
,open override func isEqual(_ object: Any?) -> Bool {
return true
}
已经符合RealmSwift
。所以你不必在Object
的定义中添加Equatable
。
Equatable
以上是关于RealmObject Equatable冗余消息的主要内容,如果未能解决你的问题,请参考以下文章
如何使用android [关闭]获取RealmObject中的最后一个修改过的RealmObject或字段
启动 Xamarin Forms Android 应用程序时未找到 RealmObject
错误:任务“:app:compileDebugJavaWithJavac”执行失败。 > 扩展 RealmObject 类后编译失败