参见英文答案 >
AlamoFire GET api request not working as expected 1个
在嵌套函数范围内更改变量时,一旦保留范围,它就不会保持更改状态.在我的示例代码中,当我将变量xmlString设置为等于响应时,它正确地设置为响应.但是然后返回一个空字符串.
func getXmlString(url:String) – >字符串{
var xmlString:String =“”
Alamofire.request(.GET,url)
.validate()
.responseString {回复于
xmlString = response.result.value!
}
return xmlString
}
我知道我遗失了一件小事,任何帮助更好地理解我的情况都会帮助我.谢谢
在嵌套函数范围内更改变量时,一旦保留范围,它就不会保持更改状态.在我的示例代码中,当我将变量xmlString设置为等于响应时,它正确地设置为响应.但是然后返回一个空字符串.
func getXmlString(url:String) – >字符串{
var xmlString:String =“”
Alamofire.request(.GET,url)
.validate()
.responseString {回复于
xmlString = response.result.value!
}
return xmlString
}
我知道我遗失了一件小事,任何帮助更好地理解我的情况都会帮助我.谢谢
解决方法
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 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。