微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift – 如何将NSDictionary转换为Dictionary?

我已经更新到XCode 8,现在我需要将我的代码Swift 2转换为 Swift 3.

以前,当我想将NSDictionary转换为Dictionary时,我只写了以下内容

let post_paramsValue = post_params as? Dictionary<String,AnyObject?>

其中post_params是NSDictionary.

但是现在使用Swift 3,我收到了这个错误

NSDictionary is not convertible to Dictionary

为什么?改变了什么?

编辑1

我也尝试过以下方法

let post_paramsValue = post_params as Dictionary<String,Any>

但是这给出了这个错误

'NSDictionary!' is not convertible to 'Dictionary<String,Any></p>'; did you mean to use <code>as!</code> to force downcast?

编辑2

我也尝试过以下方法

let post_paramsValue =  post_params as Dictionary<String,Any>

我声明NSDictionary而不是NSDictionary!,但它不起作用;我收到了这个错误

'NSDictionary' is not convertible to 'Dictionary<String,Any></p>'; did you mean to use <code>as!</code> to force downcast?

编辑3

我也尝试过以下方法

let post_paramsValue =  post_params as Dictionary<String,Any>!

但是我收到了这个错误

'NSDictionary!' is not convertible to 'Dictionary<String,Any></p>!'; did you mean to use <code>as!</code> to force downcast?

> Objective-C中的NSDictionary始终是非可选值.
> AnyObject在Swift 3中变成了Any.
>考虑到前两个“规则”,NSDictionary可以桥接到Dictionary
let post_paramsValue = post_params as Dictionary<String,Any>

如果源NSDictionary是可选的,您可以使用Dictionary< String,Any>?还是作为?字典<字符串,不限>或者作为!字典<字符串,不限>或者作为字典< String,Any>!取决于NSDictionary的实际类型

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐