在NSURLRequest中检测到不正确的NSStringEncoding值0x0000

时间:2015-07-23 07:24:35

标签: ios swift nsdata nsurlrequest nsstringencoding

我在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

1 个答案:

答案 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 ...
}