【问题标题】:Swift protocol conformance declared in a superclass not detected未检测到超类中声明的 Swift 协议一致性
【发布时间】:2016-08-03 14:46:19
【问题描述】:

我有以下代码:

import RealmSwift
class MyClass:Object{

}
func test(){
    let set = Set<MyClass>()
}

我收到一个编译时错误:类型“MyClass”不符合此行上的协议“Hashable”:

let set = Set<MyClass>()

MyClass 扩展了 Realm 的类 Object,它扩展了 RLMObjectBase,它扩展了 NSObject。 NSObject 符合 Hashable。它在扩展中声明。

为什么 MyClass 不符合 Hashable,因为它的超类之一符合它?

此外,如果我像这样添加 Hashable:

class MyClass:Object, Hashable

然后错误消失了,但是我的另一个同事,他在同一个项目上工作,得到一个编译时错误:

冗余协议一致性

这个错误意味着子类声明符合已经从超类继承的协议。

有人明白这里发生了什么吗?

【问题讨论】:

标签: swift inheritance protocols realm hashable


【解决方案1】:

我将 xCode 从 7.3 更新到 7.3.1 并解决了问题。感谢 jpsim 的评论为我指明了正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-13
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 2014-08-02
    • 1970-01-01
    相关资源
    最近更新 更多