微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

completionHandler - 没有更多上下文的表达式类型不明确

如何解决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 举报,一经查实,本站将立刻删除。