美文网首页iOS程序猿
Any 与AnyObject 有什么区别?

Any 与AnyObject 有什么区别?

作者: DingGa | 来源:发表于2021-04-07 11:57 被阅读0次

    Any:它可以代表任何型别的类别 (class)、结构 (struct)、列举 (enum),包括函式和可选型别,基本上可以说是任何东西。

    AnyObject:它指的是类别的任何实例。这只在使用参考型别 (reference type) 时,才能派上用场。这就相等于 Objective-C 中等的 ‘id’。

    Any

    如果你的字典只会在 Swift 中使用,你就应该使用 Any,因为你的型别 (Int、Double、Float、String、Array、和 Dictionary) 不是物件 (object)。

    而如果你会将字典传递给需要 NSDictionary 的 Objective-C 程式码,就应该使用AnyObject。

    image.png

    AnyObject

    image.png

    当你需要无型别物件的灵活性时,又或是当你使用桥接的 Objective-C方法及返回无型别结果的属性时,你就会使用 AnyObject。 AnyObject 可以用作任何类别、类别型别、或 class-only 协定的实例的具体型别。


    image.png

    AnyObject 协定的灵活度与 Objective-C 的 id 型别类似。因此,汇入的 Objective-C 型别经常使用 AnyObject,来作为属性、方法参数、和返回值的型别。

    在你处理参考型别时使用 AnyObject,而在处理数值型别 (value type) 时使用 Any。

    相关文章

      网友评论

        本文标题:Any 与AnyObject 有什么区别?

        本文链接:https://www.haomeiwen.com/subject/srgykltx.html