swift - 模块外部未检测到具有协议(protocol)一致性的扩展

标签 swift protocols swift-protocols

我在模块 X 中有以下代码:

protocol A {

}

extension B : A {

}

在模块 Y 中,我有:

func foo() -> A {
  return B()
}

我在 Y 中导入了模块 X,但是编译时出现错误,提示类型 B 的值无法转换为结果类型 A。好吧,它应该能够这样做,因为 B 符合 A,如中指定的第一个文件。

最佳答案

您应该添加public例如:

public protocol A {

}

extension B : A {

}

关于swift - 模块外部未检测到具有协议(protocol)一致性的扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57330950/

相关文章:

ios - 当 Swift 中隐式捕获 "self"时,我可以触发编译器警告吗

ios - 我需要将哪些 serviceUUID 传递给 retrieveConnectedPeripheralsWithServices 以快速获取任何连接的设备?

iphone - Cocoa Touch 序列化对象。解码后尝试读取自定义类的数据成员会导致程序崩溃

swift - 我可以通过对这些协议(protocol)的扩展将协议(protocol)一致性添加到 `UnsignedInteger` 吗?

ios - 在 Swift 中,将 "anywhere"注册为协议(protocol)的委托(delegate)

ios - Swift 4 中的 JSON 解析帮助 - 数据结构问题?

ios - BSimagepicker进入imageview

erlang - 如何设计灵活的Erlang协议(protocol)栈创建API

Swift:基于协议(protocol)的类型构造

Swift 协议(protocol)继承和协议(protocol)一致性问题