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

时间:2018-02-06 07:13:42

标签: swift dictionary any anyobject

我通常使用[String: AnyObject]。但我注意到Alamofire使用[String: Any]。我在AnyAnyObject或“包含”AnyObject更“优秀”的地方读到。但除此之外,我不知道他们之间是否有任何不同。如果我将字典定义为[String: Any]而不是[String: AnyObject],那么从长远来看是否有任何缺点?感谢。

1 个答案:

答案 0 :(得分:1)

任何允许使用不同类型的混合,包括 函数和非类类型 例如Int,String和Bool。根据文件, 这个数组中的元素是Structs,它们是值类型,所以理论上是

任何对象在这些情况下都不适用。

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

你可以在这里找到更多的解释。 我希望通过这个链接后你的所有怀疑都会明白

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