一个相当简单的代码片段
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在下面的评论中提供的链接。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。