gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:55:47 25 4
gpt4 key购买 nike

我已经执行了代码,但收到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
}
}

最佳答案

您将错误的参数类型传递给 completionHandler错误?不是字符串


要解决此问题,请创建一个 NSError 并使用它而不是 String:

let error = NSError(domain: "com.myAppPackageName", code: 1, userInfo: [
NSLocalizedDescriptionKey : "Bad URL"
])
completionHandler(nil, error)

或者创建自定义错误枚举类型:

enum Error: String, Swift.Error {
case badURL = "Bad URL"

private var errorCode: Int {
switch self {
case .badURL:
return 100 // your error code
}
}

var foundationError: NSError {
return NSError(domain: "com.myAppPackageName", code: errorCode, userInfo: [
NSLocalizedDescriptionKey : self.rawValue
])
}
}

...

completionHandler(nil, Error.badURL.foundationError)

...

关于ios - completionHandler - 表达式类型不明确,没有更多上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66199089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com