【发布时间】:2020-05-06 04:10:22
【问题描述】:
func getResponse(serverName: String) -> String {
var serverResponse: String = "No Response"
let serverURL = "http://" + serverName + ":3000"
if let url = URL(string: serverURL) {
URLSession.shared.dataTask(with: url) { data, response, error in
if let data = data {
if let jsonString = String(data: data, encoding: .utf8) {
serverResponse = jsonString
print(jsonString)
}
}
}.resume()
}
return serverResponse
}
我正在尝试从 if let jsonString 中设置 serverResponse 变量,但它始终返回“No response”(vars 默认值),并且 if let jsonString 中的 print 函数将打印出服务器响应。
【问题讨论】:
-
dataTask 是异步的。您的函数在服务器请求完成之前返回值。