我正在尝试将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)
}
答案 0 :(得分:1)
最有可能收到的字符串数据不是UTF8编码的。尝试NSASCIIStringEncoding。