如何解决completionHandler - 没有更多上下文的表达式类型不明确
我正在执行以下代码,我收到了关于 completionHandler 的错误
表达类型不明确,没有更多上下文
我知道这是由于 completionHandler 不匹配造成的。如何为completionHandler 返回错误的字符串/有意义的详细信息?
func fetch(urlString: String,completionHandler: @escaping (T?,Error?) -> Void) -> Void {
//...
guard let url = URL(string: urlString) else {
print("Failed to create URL!")
dispatchQueue.main.async {
completionHandler(nil,"Bad URL") // gives error: Type of expression is ambiguous without more context
}
return
}
}
解决方法
您将 { 5,4 }
{ 6,5 }
{ 7,6 }
{ 8,7 }
{ 9,8 }
{ 2,3,1 }
{ 3,4,2 }
{ 4,5,3 }
{ 5,6,7,8,9,7 }
的参数类型错误地传递给 Error?
。 completionHandler
不是 Error?
。
要解决此问题,请创建一个 String
并使用它代替 NSError
:
String
或创建自定义错误枚举类型:
let error = NSError(domain: "com.myAppPackageName",code: 1,userInfo: [
NSLocalizedDescriptionKey : "Bad URL"
])
completionHandler(nil,error)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。