“无法为”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在下面的评论中提供的链接。) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |