首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[NSDictionary]?不可兑换为[NSDictionary]?

[NSDictionary]?不可兑换为[NSDictionary]?
EN

Stack Overflow用户
提问于 2015-09-11 18:14:13
回答 1查看 498关注 0票数 0

我得到了

“NSDictionary!?不能兑换成NSDictionary吗?”以下代码出错。

代码语言:javascript
复制
  var jsonResult:[NSDictionary]! = [NSJSONSerialization.JSONObjectWithData(urlData, options:NSJSONReadingOptions.MutableContainers, error: &error1)] as? [NSDictionary]!

为什么会发生这种事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-11 18:20:14

首先:移除围绕[]NSJSONSerialization.JSONObjectWithData,如果将其放在数组中,则很难对其进行转换。

请使用以下内容

代码语言:javascript
复制
var jsonResult = NSJSONSerialization.JSONObjectWithData(urlData, options:NSJSONReadingOptions.MutableContainers, error: &error1) as! NSDictionary

as?可以选择转换为给定的类型。因此,您将得到一个类型为[NSDictionary]! -> [NSDictionary]!?的可选选项,它实际上不能转换为[NSDictionary]!,但是是不可包装的。这是没有意义的,光投和开封,只需使用展开铸在第一。

在这种情况下,苹果文档确实对选项赛很有帮助!

对我的第一点做更多的解释:您将NSJSONSerialization.JSONObjectWithData的返回值放入数组中,这将导致AnyObject?这对AnythingElse来说并不是真正可行的,因为你必须在铸造之前打开选项。我不知道有什么内置的方法可以做到这一点。在你的情况下,这是毫无意义的。在所有这些铸件之后,您仍然可以将值包装在数组中,这可以通过

代码语言:javascript
复制
var jsonResult = [NSJSONSerialization.JSONObjectWithData(urlData, options:NSJSONReadingOptions.MutableContainers, error: &error1) as! NSDictionary]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32529724

复制
相关文章

相似问题

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