【发布时间】: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