【发布时间】:2017-01-19 23:35:17
【问题描述】:
以下函数Closure use of non-escaping parameter 'completion' may allow it to escape出错
func retrieveCannedRecommendedEntities() -> Future<CannedRecommendedEntities, NSError> {
return Future() { completion in
self.retrieve(.onboarding) { response in
switch response {
case .success(let val):
let payload: AnyObject = val.value.json! as AnyObject
let json = JSON(payload)
guard let suggestions = self.parseEntitiesFromJSON(json, atKey: "suggestion") else {
completion(SqorResult.error(self.parsingError))
}
let teams = suggestions.filter {
$0.entityType != .Player
}
let athletes = suggestions.filter {
$0.entityType == .Player
}
completion(SqorResult.success(Box((teams, athletes))))
case .error(let error):
completion(SqorResult.error(error))
}
}
}
}
【问题讨论】:
-
我在 swift3 中使用 xcode 8.2 中的函数。它通过“关闭使用非转义参数'完成'可能允许它转义”引发错误。如果您对此有所了解,请帮助我。
-
提高代码可读性
标签: swift swift3 escaping structure completionhandler