一段相当简单的代码
var dict: [String: AnyObject] = [:]
dict["key"] = "value"
Run Code Online (Sandbox Code Playgroud)
生成以下编译时错误
Cannot assign value of type 'String' to type 'AnyObject?'
Run Code Online (Sandbox Code Playgroud)
简单的类型检查告诉我那String是AnyObject
"value" is AnyObject // returns true
Run Code Online (Sandbox Code Playgroud)
我可以改变AnyObject到Any,一切都将工作
var dict: [String: Any] = [:]
dict["key"] = "value"
Run Code Online (Sandbox Code Playgroud)
但我想明白为什么我会收到错误?是否String不再AnyObject?或者这是一个错误?
Rob*_*ier 37
在b6中,String不再神奇地与NSString桥接.字符串不是一个类; 这是一个结构.你需要手工做桥接:
dict["key"] = "value" as AnyObject
Run Code Online (Sandbox Code Playgroud)
is仍然似乎是桥接的事实可能是一个错误,应该报告.
不言而喻[String: AnyObject],[String: Any]应该尽可能少地使用代码.
(请务必遵循以下评论中Hamish提供的链接.)
| 归档时间: |
|
| 查看次数: |
22674 次 |
| 最近记录: |