gpt4 book ai didi

objective-c - 我是否需要为 NSObject 调用 [super init] 或 [super initWithCoder] 等

转载 作者:技术小花猫 更新时间:2023-10-29 10:35:21 24 4
gpt4 key购买 nike

通常,当我从 UI 类派生子类时,我会调用感兴趣的父类(super class)初始值设定项。但是,我不确定 NSObject 的实现细节,而且似乎在成员变量方面没有太多进展,所以我想知道:我是否需要调用 [super init] 如果我的子类扩展 NSObject?

最佳答案

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

The init method defined in the NSObject class does no initialization; it simply returns self.

因为它已被记录在案并且可能已经有一堆依赖它的代码,所以这个事实不太可能在未来的 Mac OS X 版本中改变。

编辑: BoltClock's a Unicorn提出了一个我想更夸张的观点:通过不调用 -[NSObject init] 为每个运行你的程序的人节省的总时间不太可能超过你的调试时间如果您将类的父类(super class)更改为 NSObject 以外的东西并且忘记添加对 [super init] 的调用,则会发生这种情况。

关于objective-c - 我是否需要为 NSObject 调用 [super init] 或 [super initWithCoder] 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9970864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com