swift – RealmObject Equatable冗余消息

swift – RealmObject Equatable冗余消息,第1张

概述我们有一个简单的类Person,它来自领域Object. 现在我们希望该子类符合Equatable协议.非常简单的代码看起来像这样. class Person: Object, Equatable { dynamic var localID = "0" dynamic var name:String?}func ==(lhs: Person, rhs: Person 我们有一个简单的类Person,它来自领域Object.
现在我们希望该子类符合Equatable协议.非常简单的代码看起来像这样.
class Person: Object,Equatable {    dynamic var localID     = "0"    dynamic var @R_502_6889@:String?}func ==(lhs: Person,rhs: Person) -> Bool {    return lhs.localID == rhs.localID}

我们从领域版本0.98.8开始,一切都按预期工作.当我们更新到版本0.102.0(以及其他版本之间)时,会出现编译器错误消息

Error: Redundant conformance of ‚Person‘ to protocol ‚Equatable‘

不够奇怪,如果降级回版本0.98.8,错误仍然存​​在.另一个奇怪的行为,在我们的一个开发者机器上,相同的代码编译得很好.

经过一些研究,我们不知道发生了什么,以及如何解决或解决这个问题.

最新版本的RealmSwift默认实现Equatable,您可以从RealmSwift代码中查看Object.swift.

要覆盖默认的Equatable行为,您可以覆盖此函数:

public overrIDe func isEqual(object: AnyObject?) -> Bool

之后,带有==的现有Swift代码将根据isEqual中定义的自定义条件返回结果.无需手动创建func ==.

它仍然使用isEqual,因为从NSObject继承了RLMObjectBase,而不是纯粹的Swift对象.

总结

以上是内存溢出为你收集整理的swift – RealmObject Equatable冗余消息全部内容,希望文章能够帮你解决swift – RealmObject Equatable冗余消息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1035979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存