Swift中Any & AnyObject

325 阅读1分钟

在学习Swift的过程中,进行json类型转换的时候,老是奇怪应该在[String: xxx]里面填什么,是Any还是AnyObject呢?上网搜了一下这两者的区别,大概搞清楚了些。根据官方文档的说法:

  • Any代表的是所有类型的实例,包括function类型
  • AnyObject则代表的是所有class类型的实例

在Swift 2的时候,OC中的id类型在swift中映射为AnyObject,而到了Swift 3,则变成了Any,比方说类,枚举,结构体或者其他Swift的类型。

需要记住的是String, Array, Dictionary, Int, Float等都不是class的类型,使用时要使用Any!


参考链接:

  1. anyobject-and-any-in-swift
  2. TypeCasting
  3. Objective-C id as Swift Any