swift – 如何从嵌套函数中更改变量?

参见英文答案 >
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

    }

我知道我遗失了一件小事,任何帮助更好地理解我的情况都会帮助我.谢谢 最佳答案 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
}
点赞