Swift确实键入Any包含AnyObject

时间:2015-05-06 12:40:45

标签: swift

从我所理解的

  • 任何可以代表任何类型的实例
  • AnyObject仅代表任何类型
  • 中的实例

所以我认为AnyObject的任何实例也可以转换为Any。 直到我发现这个问题:

var data: NSDictionary = NSJSONSerialization.JSONObjectWithData(...)
if let dictionary = data as? Dictionary<String, Any> {
  #this code is never called

} else if let dictionary = data as? Dictionary<String, AnyObject> {
  #Surprisingly This block is called
}

为什么第一个块永远不会被调用,而第二个块就会被调用。 我知道AnyObject并没有扩展Any,但我很确定我可以将任何AnyObject实例转换为Any。

有人对此事有任何线索或指出我错在哪里吗?感谢

0 个答案:

没有答案