if的目的(self == [super init])

时间:2013-04-30 12:48:33

标签: ios objective-c delegates

我见过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;
}

1 个答案:

答案 0 :(得分:4)

检查平等是没有意义的,也是错误的。

分配是因为super可能会返回不同的对象。