加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

“无法为”AnyObject?“类型”String“分配值,Swift 3,Xcode 8

发布时间:2020-12-14 05:56:44 所属栏目:百科 来源:网络整理
导读:一个相当简单的代码片段 var dict: [String: AnyObject] = [:]dict["key"] = "value" 生成以下编译时错误 Cannot assign value of type 'String' to type 'AnyObject?' 简单的类型检查告诉我,String是AnyObject "value" is AnyObject // returns true 我可
一个相当简单的代码片段
var dict: [String: AnyObject] = [:]
dict["key"] = "value"

生成以下编译时错误

Cannot assign value of type 'String' to type 'AnyObject?'

简单的类型检查告诉我,String是AnyObject

"value" is AnyObject // returns true

我可以将AnyObject更改为Any,一切都可以正常工作

var dict: [String: Any] = [:]
dict["key"] = "value"

但是我想明白为什么我会收到错误? String不再是AnyObject吗?还是这个bug?

在b6中,String不再神奇地与NSString桥接。字符串不是一个类;它是一个结构体。你需要手动桥接:
dict["key"] = "value" as AnyObject

仍然似乎是桥接的事实可能是一个错误,应该报告。

不言而喻,您的代码中应尽可能少地使用[String:AnyObject]和[String:Any]。

(请务必遵循Hamish在下面的评论中提供的链接。)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读