我见过if(self = [super init])
,但我最近遇到了一些代码,它们测试的是相等而不是进行分配,例如if(self == [super init])
。此代码的目的是什么,以及它与if(self = [super init])
的对比方式?
对于上下文,这是整个函数:
- (id)initWithDelegate:(id<BSForwardGeocoderDelegate>)aDelegate
{
if (self == [super init])
{
delegate = aDelegate;
}
return self;
}
答案 0 :(得分:4)
检查平等是没有意义的,也是错误的。
分配是因为super
可能会返回不同的对象。