鉴于这段代码:
-(id) init
{
self = [super init];
if (self != nil)
{
...
}
return self;
}
我知道我们正在检查超级初始化没有失败,但对我来说没有任何意义,我会感谢对菜鸟的解释。
为什么我要将super init的结果分配给self。如果我从我的类中删除这个方法,那么无论如何都会调用super init方法,并且不会有任何赋值。
答案 0 :(得分:5)
原则上(并且,令人惊讶的是,即使在实践中)[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。