我得到了
“NSDictionary!?不能兑换成NSDictionary吗?”以下代码出错。
var jsonResult:[NSDictionary]! = [NSJSONSerialization.JSONObjectWithData(urlData, options:NSJSONReadingOptions.MutableContainers, error: &error1)] as? [NSDictionary]!为什么会发生这种事?
发布于 2015-09-11 18:20:14
首先:移除围绕[和]的NSJSONSerialization.JSONObjectWithData,如果将其放在数组中,则很难对其进行转换。
请使用以下内容
var jsonResult = NSJSONSerialization.JSONObjectWithData(urlData, options:NSJSONReadingOptions.MutableContainers, error: &error1) as! NSDictionaryas?可以选择转换为给定的类型。因此,您将得到一个类型为[NSDictionary]! -> [NSDictionary]!?的可选选项,它实际上不能转换为[NSDictionary]!,但是是不可包装的。这是没有意义的,光投和开封,只需使用展开铸在第一。
在这种情况下,苹果文档确实对选项赛很有帮助!
对我的第一点做更多的解释:您将NSJSONSerialization.JSONObjectWithData的返回值放入数组中,这将导致AnyObject?这对AnythingElse来说并不是真正可行的,因为你必须在铸造之前打开选项。我不知道有什么内置的方法可以做到这一点。在你的情况下,这是毫无意义的。在所有这些铸件之后,您仍然可以将值包装在数组中,这可以通过
var jsonResult = [NSJSONSerialization.JSONObjectWithData(urlData, options:NSJSONReadingOptions.MutableContainers, error: &error1) as! NSDictionary]https://stackoverflow.com/questions/32529724
复制相似问题