0

当我尝试在 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

我俩都试图摆脱警告错误但没有奏效:我增加到timeoutInterval200 。

我试过了:

var myinfo = NSString(bytes: mydata.bytes, length: mydata.length, encoding: self.responseEncoding())

func responseEncoding() -> NSStringEncoding {

    return responseEncoding()


}

这个解决方案在这里对我不起作用: 检测到不正确的 NSStringEncoding 值 0x0000

4

1 回答 1

1

UInt()创建一个值为零的整数,因此您实际上是在调用

var datastring = NSString(data: mydata, encoding: 0) as! String

但是0不是 encoding 参数的有效参数,您必须将其替换为有效的NSStringEncoding,例如NSUTF8StringEncoding

另请注意,转换可能会失败,因此您最好使用可选绑定而不是强制转换:

if let datastring = NSString(data: mydata, encoding: NSUTF8StringEncoding) as? String {

} else {
      // Encoding error ...
}
于 2015-07-23T07:32:01.110 回答