在 NSURLRequest 中检测到不正确的 NSStringEncoding 值 0x0000
Incorrect NSStringEncoding value 0x0000 detected in NSURLRequest
当我尝试在 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
UInt()
创建一个值为 zero 的整数,因此您实际上
打电话
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 ...
}
当我尝试在 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
UInt()
创建一个值为 zero 的整数,因此您实际上
打电话
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 ...
}