我在开头声明了一个字符串
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
为零。我如何才能使它不变为nil并且可以实际使用该值?例如,我想使用
println (testString)
方法块之后。但这是零
最佳答案
您的变量为nil的原因是因为闭包是异步执行的。这意味着网络请求之后的其余代码将继续正常调用,但是仅在网络请求完成时才调用包含参数数据,响应和错误的代码。
要解决此问题,请尝试将要对变量执行的所有操作放在闭包中,以使println(testString)
放在大括号内。
关于swift - NSURLSession中的字符串nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46167124/