swift - 无法在 APIClient 的当前上下文中推断闭包类型
问题描述
我正在尝试将代码从 Swift 3.2 迁移到 Swift 4.2。放入 Xcode 10.1 时出现此错误。“无法在当前上下文中推断闭包类型”。这是使用 YALAPIClient。请帮忙。
无法在当前上下文中推断闭包类型 这是我在堆栈溢出时发现的。但我在这里没有使用任何尝试方法。请帮助。
private func presentIndustrySearch() {
let dataProvider = RequestDataProvider { return IndustriesRequest() } /*error comes here*/
}
public class RequestDataProvider<Representation, Request>: DataProvider, NetworkClientInjectable
where
Request: SerializeableAPIRequest,
Request.Parser.Representation == [Representation]
{
public typealias Item = Representation
public typealias RequestConstructor = () -> Request
public private(set) var data = [Item]()
private let requestConstructor: RequestConstructor
public init(_ requestConstructor: @escaping RequestConstructor) {
self.requestConstructor = requestConstructor
}
public func loadData(before: () -> Void, after: @escaping (Error?) -> Void) {
let request: Request = self.requestConstructor()
before()
networkClient.execute(request: request, parser: request.parser, completion: { [weak self] task in
guard let `self` = self else { return }
if let data = task.value, data.count != 0 {
self.data.append(contentsOf: data)
after(nil)
} else if let error = task.error {
after(error as NSError)
} else {
let error = NSError.reachedEndOfPage()
after(error)
}
})
}
}
public protocol SerializeableAPIRequest: APIRequest {
associatedtype Parser: ResponseParser
var parser: Parser { get }
}
public struct IndustriesRequest: SerializeableAPIRequest, TokenizedAPIRequest, StubAPIRequest {
public private(set) var method = APIRequestMethod.get
public private(set) var path = "industries"
public private(set) var parser = KeyPathMappableArrayParser<[Industry]>(keyPath: "data")
public private(set) var parameters: [String: String]? = [:]
public private(set) var authenticationTokenRequired = true
public init(value: String = "") {
parameters!["term"] = value
}
}
解决方案
推荐阅读
- ios - 如何抑制 Xcode11 中的特定编译器警告
- arrays - 如何检查数组中的所有元素是否与另一个数组中的某些元素相同
- angular - 如何在角度材料中的垫选择下拉列表中禁用自动滚动?
- python - 逐行排序数据框列
- sql - PostgreSQL在case语句中比较空值
- reactjs - 如何使用历史钩子传递数据以响应功能组件
- ios - 为什么在创建反应原生应用程序时安装 cocoapods 依赖项失败?
- python - 由图片组成的情节中的主标题超出范围
- c# - 如何在 WPF 中使用 MouseMove 绘制 Segmet 线
- code-coverage - 从 Cypress.io 覆盖报告中排除文件