NSURLSession中的字符串为nil

时间:2015-07-21 21:08:40

标签: swift

我在开头声明了一个字符串

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) 

方法块之后。但它是零

1 个答案:

答案 0 :(得分:1)

您的变量为nil的原因是因为闭包是异步执行的。这意味着网络请求之后的其余代码将继续被正常调用,但只有在网络请求完成时才会调用包含参数数据,响应和错误的代码。

要解决此问题,请尝试在闭包内放置您要对变量执行的操作,以便println(testString)位于大括号内。