gpt4 book ai didi

ios - [NSDictionary]!?不能转换为 [NSDictionary]?

转载 作者:行者123 更新时间:2023-11-29 01:39:54 32 4
gpt4 key购买 nike

我得到了

'[NSDictionary]!? is not convertible to [NSDictionary]?' error on following code.

  var jsonResult:[NSDictionary]! = [NSJSONSerialization.JSONObjectWithData(urlData, options:NSJSONReadingOptions.MutableContainers, error: &error1)] as? [NSDictionary]!

为什么会发生这种情况?

最佳答案

首先:删除NSJSONSerialization.JSONObjectWithData周围的[],如果把它放在数组中会变得非常困难转换它。

使用以下内容

var jsonResult = NSJSONSerialization.JSONObjectWithData(urlData, options:NSJSONReadingOptions.MutableContainers, error: &error1) as! NSDictionary

as? 可选择强制转换为给定类型。因此,您最终会得到 [NSDictionary]! -> [NSDictionary]!? 类型的可选类型,它实际上无法转换为 [NSDictionary]! 但无法包装。这对于选择性强制转换和展开是没有意义的,只需首先使用展开强制转换即可。

apple docs在这种有关可选的情况下真的很有帮助!

对我的第一点进行更多解释:您将 NSJSONSerialization.JSONObjectWithData 的返回值放入数组中,这将导致 [AnyObject?] 无法真正转换为 [AnythingElse ] 因为你必须在转换之前解开选项。我不知道有任何内置的方法可以做到这一点。并且在您的场景中没有任何意义。在所有转换之后,您仍然可以将值包装在一个数组中,您可以通过

var jsonResult = [NSJSONSerialization.JSONObjectWithData(urlData, options:NSJSONReadingOptions.MutableContainers, error: &error1) as! NSDictionary]

关于ios - [NSDictionary]!?不能转换为 [NSDictionary]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32529724/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com