gpt4 book ai didi

ios - Swift 4 - 抛出函数的无效转换

转载 作者:搜寻专家 更新时间:2023-11-01 06:28:53 25 4
gpt4 key购买 nike

我有 connect.swift 代码:

public struct Connect {
let adresSerwera = "http://test.nazwa.pl/"
typealias Odpowiedz = (Data?, Error?) -> Void


func getJsonFromServer(parametry: String, wynikRequesta: @escaping Odpowiedz) {
guard let Url = URL(string: self.adresSerwera + "kartyEndpoint.qbpage" + parametry) else { return }
URLSession.shared.dataTask(with: Url) { (data, response, error) in
if error == nil {
guard let data = data else {
print("Error 100: \(error)")
wynikRequesta(nil, error)
return
}
print("R>" + self.adresSerwera + "kartyEndpoint.qbpage?" + parametry)
do {
//let json = try JSONDecoder().decode(forecast.self, from: data)
wynikRequesta(data, nil)
dump(data)
print("\(data)")

} catch let err {
print("Error 101: ", err)
wynikRequesta(nil, err)
}
} else{
print("Error 102: Problem with download data")
}
}.resume()
}
func sprawdzDaneLogowania(login: String?, haslo: String?, callback: @escaping Odpowiedz) {
getJsonFromServer(parametry: "?action=LOGOWANIE&login=\(login!)&password=\(haslo!)", wynikRequesta: callback)
}

}

和下载数据的代码:

@IBAction func btnLoginPressed(_ sender: Any) {
if self.textFieldLogin.text?.isEmpty ?? true || self.textFieldPassword.text?.isEmpty ?? true {
print("Uzupełnij wszystkie pola!!")
} else {
print("Pola uzupełnione")
cms.sprawdzDaneLogowania(login: self.textFieldLogin.text, haslo: self.textFieldLogin.text, callback: { (data, blad) in
if blad == nil{
if let dane = data {
let str = String(data: dane, encoding: .utf8)
let downloadedData = RankingGrupowyObject(JSONString: str!)


let decoder = JSONDecoder()
let zalogowanyUser = try decoder.decode(LoginUser.self, from: data)

} else {
print("Error 103: \(data)")
}
} else {
print("Error 104: \(blad)")
}


})
}
}

对于行:cms.Check the Logs (login: self.textFieldLogin.text, password: self.textFieldLogin.text, 回调:{(date, error) in

我收到一条错误消息:

Invalid conversion from throwing function of '(_, _) throws -> ()' is a non-throwing function type 'Connect. Answer' (aka '(Optional , Optional ) -> ()')

我做错了什么?你如何解决这个错误?通过使用 CheckLogging 函数,我想创建一个目标对象

最佳答案

let zalogowanyUser = try decoder.decode(LoginUser.self, from: data)

这部分可以抛出,意味着你应该在那里做/捕获:

do {
let zalogowanyUser = try decoder.decode(LoginUser.self, from: data)
}
catch {
print("Error in decoder")
}

或者让错误传播到上部。为此,您的方法 cms.sprawdzDaneLogowania 可以标记为 throws,或者您的方法的回调 block 可以标记为这样。

关于ios - Swift 4 - 抛出函数的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50015178/

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