当我试图在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
发布于 2015-07-23 07:32:01
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 ...
}https://stackoverflow.com/questions/31580710
复制相似问题