0

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

在此处输入图像描述

4

1 回答 1

0

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

于 2016-03-25T09:53:40.593 回答