gpt4 book ai didi

json - -- 带有完成 URLRequest - JSON 的函数调用

转载 作者:行者123 更新时间:2023-11-30 10:50:41 24 4
gpt4 key购买 nike

我确实阅读了很多有关完成处理程序的函数的内容,但现在我遇到了如何以正确的方式调用此函数(downloadJSON)的问题。我必须在函数中给出哪些参数并在调用该函数的我自己的类中处理结果数据(json)。

这是 David Tran 的代码。你好,教程很精彩,但是在代码中没有调用这个函数。

let request: URLRequest
lazy var configuration: URLSessionConfiguration = URLSessionConfiguration.default
lazy var session: URLSession = URLSession(configuration: self.configuration)

typealias JSONHandler = (JSON?, HTTPURLResponse?, Error?) -> Void

func downloadJSON(completion: @escaping JSONHandler)
{
let dataTask = session.dataTask(with: self.request) { (data, response, error) in
// OFF THE MAIN THREAD
// Error: missing http response
guard let httpResponse = response as? HTTPURLResponse else {
let userInfo = [NSLocalizedDescriptionKey : NSLocalizedString("Missing HTTP Response", comment: "")]
let error = NSError(domain: DANetworkingErrorDomain, code: MissingHTTPResponseError, userInfo: userInfo)
completion(nil, nil, error as Error)
return
}

if data == nil {
if let error = error {
completion(nil, httpResponse, error)
}
} else {
switch httpResponse.statusCode {
case 200:
// OK parse JSON into Foundation objects (array, dictionary..)
do {
let json = try JSONSerialization.jsonObject(with: data!, options: []) as? [String : Any]
completion(json, httpResponse, nil)
} catch let error as NSError {
completion(nil, httpResponse, error)
}
default:
print("Received HTTP response code: \(httpResponse.statusCode) - was not handled in NetworkProcessing.swift")
}
}
}

dataTask.resume()
}

最佳答案

让 Xcode 帮助您。输入 downlo 并按回车键。 Xcode完成功能

enter image description here

再次按回车键即可获取参数

enter image description here

例如,您必须将占位符替换为参数名称

downloadJSON { (json, response, error) in
if let error = error {
print(error)
} else if let json = json {
print(json)
}
}

注意:

您的代码中存在致命类型不匹配错误:JSONSerialization 行的结果是 [String:Any],但完成处理程序的第一个参数是 JSON

关于json - -- 带有完成 URLRequest - JSON 的函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54616076/

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