This question already has an answer here:
AlamoFire GET api request not working as expected
(1 个回答)
4年前关闭。
在嵌套函数范围内更改变量时,一旦离开范围,它就不会保持更改。在我的示例代码中,当我将变量 xmlString 设置为等于响应时,它正确地设置为响应。但随后返回一个空字符串。
并使用它
(1 个回答)
4年前关闭。
在嵌套函数范围内更改变量时,一旦离开范围,它就不会保持更改。在我的示例代码中,当我将变量 xmlString 设置为等于响应时,它正确地设置为响应。但随后返回一个空字符串。
func getXmlString(url: String) -> String { var xmlString: String = "" Alamofire.request(.GET, url) .validate() .responseString { response in xmlString = response.result.value! } return xmlString }
我知道我只缺少一件小事,任何帮助更好地了解我的情况都会帮助我解决问题。谢谢 最佳答案
Alamofire
是同步的。那为什么你的 xmlString 为空。您应该等到收到 Alamofire
的响应。
func getXmlString(url: String, completion: (xmlString: String) -> ()) {
var xmlString: String = ""
Alamofire.request(.GET, url)
.validate()
.responseString { response in
xmlString = response.result.value!
completion(xmlString)
}
}
并使用它
getXmlString(url: String){ xmlString in
//do something with your String
}
关于swift - 如何从嵌套函数更改变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38155989/
10-09 16:14