[String: AnyObject] 和 [String: Any] 有什么区别?

What is the difference between [String: AnyObject] and [String: Any]?

我一般用[String: AnyObject]。但我注意到 Alamofire 使用 [String: Any]。我在某处读到 AnyAnyObject 或 "encompasses" AnyObject 更 "superior"。但除此之外,我不知道它们之间是否有任何不同。如果我将字典定义为 [String: Any] 而不是 [String: AnyObject],长 运行 有什么缺点吗?谢谢。

Any 允许使用不同类型的混合,包括 函数和非 class 类型 例如 Int、String 和 Bool。根据文档, 这个数组中的元素是值类型的结构,所以理论上

AnyObject 在这些情况下不应该工作。

我们会将 AnyObject 用于 Class 类型,因为它们比 Any 更具体一些。但是同样,使用 AnyObject 只是一个选项。

您可以在此处找到更多说明。 我希望通过这个你所有的疑虑都会消失 link

https://medium.com/@mimicatcodes/any-vs-anyobject-in-swift-3-b1a8d3a02e00