鉴于这段代码:
-(id) init
{
self = [super init];
if (self != nil)
{
...
}
return self;
}
我知道我们正在检查 super 初始化没有失败,但否则它对我来说毫无意义,我希望得到一个菜鸟的解释。
为什么我要把 super init 的结果赋值给 self.如果我从我的类中删除这个方法, super 初始化方法无论如何都会被调用,并且不会有任何分配。
最佳答案
原则上(令人惊讶的是,甚至在实践中)[super init]
可以返回不同的对象!请参阅http://mikeash.com/pyblog/the-how-and-why-of-cocoa-initializers.html和 http://cocoawithlove.com/2009/04/what-does-it-mean-when-you-assign-super.html了解更多信息。
关于objective-c - 将 super init 赋值给 self 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5594139/