gpt4 book ai didi

swift - 函数在 void 函数中给出意外的非 void 返回值

转载 作者:行者123 更新时间:2023-11-30 13:06:20 25 4
gpt4 key购买 nike

我有一个函数应该获取 json 数据并返回它。这是下面的函数:

func httpjson(){
let requestURL: NSURL = NSURL(string: "http://www.learnswiftonline.com/Samples/subway.json")!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(urlRequest) { (data, response, error) -> Void in
let httpResponse = response as! NSHTTPURLResponse
let statusCode = httpResponse.statusCode
if (statusCode == 200) {
print("All OK!")
do{
let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)
return json
}catch {
print("Error with Json: \(error)")
}
}
}
task.resume()
}

代码返回错误Unexpected non-void return value in void function

在阅读了有关此问题的一些内容后,我了解到可以通过更改 func httpjson(){ 来解决此问题。至func httpjson()-> String{但它仍然返回相同的错误。

最佳答案

问题似乎在于您定义为 (data, response, error) -> Void 的闭包,而不是 httpjson 方法。

由于您的数据任务是异步的,因此在 JSON 解析完成时 httpjson 已经返回。它不需要被定义为返回任何内容,因为还没有返回任何内容。

您需要对 json 执行一些操作(通知、回调、完成 block ...),以便让应用程序的其余部分知道它何时可以使用。

关于swift - 函数在 void 函数中给出意外的非 void 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39312414/

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