Swift 无法转换类型为';承诺<;[NSDictionary]>';到预期的参数类型';担保<;无效>';
目前,当我将我的承诺书从Swift 2更新为Swift 4时,我遇到了一些问题。我的很多承诺都是从NSDictionary返回此版本以保证无效。我不明白为什么会出现这个问题。如果有人能给我解释一下,我将不胜感激Swift 无法转换类型为';承诺<;[NSDictionary]>';到预期的参数类型';担保<;无效>';,swift,swift4,promisekit,Swift,Swift4,Promisekit,目前,当我将我的承诺书从Swift 2更新为Swift 4时,我遇到了一些问题。我的很多承诺都是从NSDictionary返回此版本以保证无效。我不明白为什么会出现这个问题。如果有人能给我解释一下,我将不胜感激 func getPlayerGameLog(sportName: String) -> Promise<NSArray> { let team = (self as? PlayerWithPositionAndGame)?.team let positi
func getPlayerGameLog(sportName: String) -> Promise<NSArray> {
let team = (self as? PlayerWithPositionAndGame)?.team
let position = (self as? PlayerWithPositionAndGame)?.position
if sportName == "mlb" {
return when(Data.mlbPlayerGameLogs[id].get(), Data.sportsTeams[sportName].get()).then { (result, teams) -> NSArray in
if result.count == 0 {
return []
} else {
// Omitted Code
return gameStats
}
}
} else if sportName == "nfl" {
return when(Data.nflPlayerGameLogs[id].get(), Data.sportsTeams[sportName].get()).then { (result, teams) -> NSArray in
if result.count == 0 {
return []
} else {
// Omitted Code
return gameStats
}
}
} else {
return Data.nbaPlayerGameLogs[id].get().then { gameLogs in
return []
}
}
}
mlb/nfl/nba也是如此
该函数的用途非常简单。它只是将团队信息拉入函数并返回
“return when()”行出现错误首先,它是swift 4,您不应该使用
NS…
类型,现在有纯swift类型
下一件事,根据
将输入上一个承诺值,并要求您返回一个承诺然后
输入上一个承诺值并返回一个无效承诺(占链使用量的80%)done
被输入以前的承诺值,并要求您返回一个非承诺值,即一个值map
然后
都应替换为map
此外,您应该将
when
重写为when(implemented:)
以返回Promise
,而不是Promise
,首先,它是swift 4,您不应该使用NS…
类型,现在有纯swift类型
下一件事,根据
将输入上一个承诺值,并要求您返回一个承诺然后
输入上一个承诺值并返回一个无效承诺(占链使用量的80%)done
被输入以前的承诺值,并要求您返回一个非承诺值,即一个值map
然后
都应替换为map
此外,您应该将
when
重写为when(implemented:)
以返回承诺
,而不是保证
出现此错误的位置?添加编辑后,错误显示在第5行、第14行和第23行参见我的答案。应该有帮助。这个错误出现在哪里?添加了编辑,错误出现在第5行、第14行和第23行查看我的答案。应该有帮助。
static let mlbPlayerGameLogs = MultiCache { id in API.getMLBPlayerGameLogs(playerID: id) }