从 NSURLSessionTaskDelegate 获取数据
Getting data from NSURLSessionTaskDelegate
我正在尝试将 NSURLSession
与 DataTask
和 Delegate
一起使用,但我找不到一种方法来转换 didReceiveData
获得的数据方法变成一个字符串。
这是我正在使用的代码,我遇到的问题是我得到了一些数据,但是当我尝试将这些数据转换成字符串时,我得到了 nil
,而预期的结果将是我请求的页面的来源。
class ViewController: UIViewController, NSURLSessionDataDelegate {
var session:NSURLSession?
var data = NSMutableData()
override func viewDidLoad() {
super.viewDidLoad()
let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
session = NSURLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: NSOperationQueue.mainQueue())
session!.dataTaskWithRequest(NSURLRequest(URL: NSURL(string: "http://www.google.com")!)).resume()
}
func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?){
var str = NSString(data: NSData(data: self.data), encoding: NSUTF8StringEncoding)
println(data) // IT PRINTS DATA CONTENT
println(str) // IT PRINTS nil :(
}
func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData){
self.data.appendData(data)
}
很可能接收到的字符串数据不是 UTF8 编码的。试试 NSASCIIStringEncoding。
我正在尝试将 NSURLSession
与 DataTask
和 Delegate
一起使用,但我找不到一种方法来转换 didReceiveData
获得的数据方法变成一个字符串。
这是我正在使用的代码,我遇到的问题是我得到了一些数据,但是当我尝试将这些数据转换成字符串时,我得到了 nil
,而预期的结果将是我请求的页面的来源。
class ViewController: UIViewController, NSURLSessionDataDelegate {
var session:NSURLSession?
var data = NSMutableData()
override func viewDidLoad() {
super.viewDidLoad()
let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
session = NSURLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: NSOperationQueue.mainQueue())
session!.dataTaskWithRequest(NSURLRequest(URL: NSURL(string: "http://www.google.com")!)).resume()
}
func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?){
var str = NSString(data: NSData(data: self.data), encoding: NSUTF8StringEncoding)
println(data) // IT PRINTS DATA CONTENT
println(str) // IT PRINTS nil :(
}
func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData){
self.data.appendData(data)
}
很可能接收到的字符串数据不是 UTF8 编码的。试试 NSASCIIStringEncoding。