【问题标题】:why we shouldn't use AnyObject?为什么我们不应该使用 AnyObject?
【发布时间】:2016-03-25 09:43:50
【问题描述】:

我目前正在通过 watch stanford ios 教程系列学习 swift。讲师在第一堂课中提到我们不应该使用 AnyObject。我只是想知道它背后的原因是什么?这是一种糟糕的编码习惯吗?还是因为其他一些原因?提前感谢您的帮助!

【问题讨论】:

  • 类型越严格,编译器可以捕获的错误就越多(并且您不会在运行时崩溃)。

标签: ios swift anyobject


【解决方案1】:

AnyObject 表示任何类型的类(或引用类型),它类似于 Objective-C 中的id。它是所有类都隐式遵守的协议。
问题是编译器在编译时不知道它是哪种对象,这意味着您可以轻松构建一个将方法发送到错误对象的应用程序.
这通常会在NSObject 子类“unrecognized selector sent to instance XXXXXX”上触发这种异常并导致崩溃。
Swift 喜欢强类型,这真的很有帮助,因为您可以在问题发生之前解决问题,但是如果您将对象定义为 AnyObject 它可以是一切。

【讨论】:

    猜你喜欢
    • 2011-04-22
    • 2011-05-16
    • 2018-01-15
    • 2016-04-30
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    相关资源
    最近更新 更多