2

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

1 回答 1

4

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

赋值是因为super可能返回不同的对象。

于 2013-04-30T12:54:02.633 回答