웹 서버에있는 외부 JSON 파일에서 문자열을 가져 오려고하는데 성공적으로 가져옵니다.하지만 값을 가져 오는 클로저 안에 있습니다. 변수 returnip으로 반환 할 수 있도록 외부에 가져와야합니다. 어떻게해야합니까?클로저 내에 지정된 반환 변수 - Swift
func getJsonFromUrl() -> String {
let URL2 = "https://url.com/asd.php";
let url = URL(string: URL2)
URLSession.shared.dataTask(with:url!) { (data, response, error) in
if error != nil {
print(error as Any)
} else {
do {
let parsedData = try JSONSerialization.jsonObject(with: data!) as! [String:Any]
let ips = parsedData["ip"] as! String
print("The IP is: " + ips) //Prints the value correctly
var returnip = ips //The value that I want to return, that does not go outside this closure
} catch let error as NSError {
print(error)
}
}
}.resume()
return returnip //Does not return anything
}
감사
당신은 이런 식으로 할 수 없습니다. 웹 호출은 비동기입니다. 반환은 URL 호출이 완료되기 전에 발생합니다. – ryantxr