在嵌套函数范围内更改变量时,一旦保留范围,它就不会保持更改状态。在我的示例代码中,当我将变量xmlString设置为等于响应时,它正确地设置为响应。但是然后返回一个空字符串。
func getXmlString(url: String) -> String {
var xmlString: String = ""
Alamofire.request(.GET, url)
.validate()
.responseString { response in
xmlString = response.result.value!
}
return xmlString
}
我知道我遗失了一件小事,任何帮助更好地了解我的情况都会帮助我。感谢
答案 0 :(得分:1)
Alamofire
是acsynchonus。这就是为什么你的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
}