【问题标题】:Can an associatedtype have a type annotation?关联类型可以有类型注释吗?
【发布时间】:2021-01-26 03:51:55
【问题描述】:

我正在关注一个示例,作者在 associatedType 上使用了类型注释,但是 Xcode 抛出错误“无法在范围内找到类型 *”。没有使用任何 Cocoapods 或第三方框架。我也尝试过构建项目,但它没有编译。

这是一个单独的 Swift 文件中的类型:

  import Foundation

protocol EndPointType {
    var baseURL: URL {get}
    var path: String {get}
    var httpMethod: HTTPMethod {get}
    var task: HTTPTask {get}
    var headers: HTTPHeaders? {get}
}

这是另一个 Swift 文件中的代码,它的关联类型试图使用类型注释:

    import Foundation

public typealias NetworkRouterCompletion = (_ data: Data?,_ _response: URLResponse?, _ error: Error?)->()

protocol NetworkRouter: class {
    associatedtype EndPoint: EndPointType
    func request(_ route: EndPoint, completion: @escaping NetworkRouterCompletion)
    func cancel()
}

为什么第二个 Swift 文件看不到数据类型以便编译?

【问题讨论】:

    标签: swift associated-types type-annotation


    【解决方案1】:

    我将 Swift 文件移动到一个子组中,Xcode 认为我删除了该文件,但它在工作区中。我将 Swift 文件移回子组,问题就消失了。

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 1970-01-01
      • 2019-05-24
      • 2019-03-23
      • 2016-12-07
      • 2018-10-14
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      相关资源
      最近更新 更多