我在Swift中尝试将NSData
转换为NSString
时收到错误
这是我的要求:
var request = NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.ReturnCacheDataElseLoad, timeoutInterval: 200)
我收到错误:
var mydata :NSData = NSURLCache.sharedURLCache().cachedResponseForRequest(request)!.data
var datastring = NSString(data: mydata, encoding: UInt()) as! String
我的两个都试图摆脱警告错误,但没有奏效:
我将timeoutInterval
增加到200。
我试过了:
var myinfo = NSString(bytes: mydata.bytes, length: mydata.length, encoding: self.responseEncoding())
func responseEncoding() -> NSStringEncoding {
return responseEncoding()
}
这个解决方案对我来说不起作用: Incorrect NSStringEncoding value 0x0000 detected
答案 0 :(得分:1)
UInt()
创建一个值为零的整数,因此您就是有效的
调用
var datastring = NSString(data: mydata, encoding: 0) as! String
但0
不是编码参数的有效参数,您必须这样做
将其替换为有效的NSStringEncoding
,例如NSUTF8StringEncoding
。
另请注意,转换可能会失败,因此您最好使用可选项 绑定而不是强制转换:
if let datastring = NSString(data: mydata, encoding: NSUTF8StringEncoding) as? String {
} else {
// Encoding error ...
}