例如,我有以下代码:
let task = NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
var dann = NSString(data: data, encoding: NSUTF8StringEncoding)!
self.str = dann
})
task.resume()
我想将数据传输到类中的变量(str
类中的变量)。字符串self.str = dann
没有传达任何信息。我怎样才能做到这一点?
我不确定 NSString 是你想要的类型。 JSON 可能是返回数据的格式,具体取决于您的 URL 的功能。我尝试了提供的代码并遇到了相同的问题,但是如果您将其视为 JSON(我使用 httpbin.org 作为虚拟 URL 源)并且它有效。
let task = NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: "http://httpbin.org/get")!, completionHandler: { (data, response, error) -> Void in
do{
let str = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject]
print(str)
}
catch {
print("json error: \(error)")
}
})
task.resume()
(感谢@sgthad 建议的编辑。该编辑与问题不是特别相关,但仍然想将代码更新为最新的。)
Swift 3 语法更新
let url = URL(string: "http://httpbin.org/get")!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let unwrappedData = data else { return }
do {
let str = try JSONSerialization.jsonObject(with: unwrappedData, options: .allowFragments)
print(str)
} catch {
print("json error: \(error)")
}
}
task.resume()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)