我在开头声明了一个字符串
var testString: String?
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
let xml = SWXMLHash.parse(data)
testString = xml["root"]["schedule"]["date"].element?.text
}
但在NSURLSession之外,testString
是零。如何才能使它不会变为零并且我实际上可以使用该值?
例如,我想使用
println (testString)
方法块之后。但它是零
答案 0 :(得分:1)
您的变量为nil的原因是因为闭包是异步执行的。这意味着网络请求之后的其余代码将继续被正常调用,但只有在网络请求完成时才会调用包含参数数据,响应和错误的代码。
要解决此问题,请尝试在闭包内放置您要对变量执行的操作,以便println(testString)
位于大括号内。