2012-04-02 50 views

回答

8

从技术上讲,没有。该documentation for -[NSObject init]

NSObject类中定义的init方法不做任何初始化;它只是返回self

因为它是记录,并且已经有可能是一堆依赖于它的代码,这其实是高度不可能在Mac OS X的未来版本中改变

编辑:BoltClock's a Unicorn带来我希望做出更多的双曲线:通过不为每个运行程序的人调用-[NSObject init]节省的总时间不可能超过如果您将类的超类更改为某种东西时所发生的调试时间除了NSObject而忘记添加致电[super init]

4

documentation,它似乎并没有做任何初始化都:

在NSObject类中定义的init方法不做任何初始化;它只是返回self

我想没有理由不打电话给[super init],但没有理由不遵循约定,并且你知道,无论如何都要在你的子类中调用它。例如,你的子类将来可能会从另一个类继承,这可能包含子类将要求的其自己的-init方法中的初始化逻辑。

0

只需通过super的指定初始值设定项在您的实现中调用,因为您应该做的事情是清晰和正确的。

相关问题