在 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 ...
}