首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NSStringEncoding中检测到不正确的NSURLRequest值0x0000

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

Stack Overflow用户
提问于 2015-07-23 07:24:35
回答 1查看 603关注 0票数 0

当我试图在Swift中将NSData转换为NSString时,会出现一个错误

这是我的要求:

代码语言:javascript
复制
var request = NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.ReturnCacheDataElseLoad, timeoutInterval: 200)

我在这里发现了一个错误:

代码语言:javascript
复制
        var mydata :NSData = NSURLCache.sharedURLCache().cachedResponseForRequest(request)!.data
        var datastring = NSString(data: mydata, encoding: UInt()) as! String

我的两个都试图消除警告错误,但没有奏效:我将timeoutInterval提高到了200。

我试过:

代码语言:javascript
复制
var myinfo = NSString(bytes: mydata.bytes, length: mydata.length, encoding: self.responseEncoding())

func responseEncoding() -> NSStringEncoding {

    return responseEncoding()


}

这个解决方案对我没有用:Incorrect NSStringEncoding value 0x0000 detected

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-23 07:32:01

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

代码语言:javascript
复制
var datastring = NSString(data: mydata, encoding: 0) as! String

但是0不是编码参数的有效参数,您必须用一个有效的NSStringEncoding替换它,例如NSUTF8StringEncoding

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

代码语言:javascript
复制
if let datastring = NSString(data: mydata, encoding: NSUTF8StringEncoding) as? String {

} else {
      // Encoding error ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31580710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档