我正在从 promiseKit 4.3 -> 6 迁移并卡在这个错误上。任何帮助,将不胜感激。谢谢
错误 - “无法将类型 '() -> Environment' 的值转换为预期的参数类型 '() -> _'”
open func run() -> Promise<Environment> {
return GetSettingsQuery().run().then { result -> Environment in
var environment = Environment.certification
if let dict = result.data as? Dictionary<String, AnyObject>,
let environementRaw = dict[“ABC”] as? Int,
let env = Environment(rawValue: environementRaw) {
environment = env
}
return environment
}
}
最佳答案
正如 PromiseKit 文档中的迁移指南和故障排除指南所说,您需要将 then
替换为 map
open func run() -> Promise<Environment> {
return GetSettingsQuery().run().map { result -> Environment in
var environment = Environment.certification
if let dict = result.data as? Dictionary<String, AnyObject>,
let environementRaw = dict[“ABC”] as? Int,
let env = Environment(rawValue: environementRaw) {
environment = env
}
return environment
}
}
通常建议阅读项目的文档,尤其是在升级项目的主要版本时。
切勿在未先阅读发行说明的情况下升级库的主要版本,PromiseKit v6 的发行说明多次描述了您的确切问题。
将您的依赖项固定到主要版本,所有包管理器都支持此操作,并且所有包管理器的文档都会告诉您将依赖项固定到主要版本。
关于ios Promise 6 - 无法将类型 '(_) -> Environment' 的值转换为预期的参数类型 '(_) -> _',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50395458/