2012-01-21 31 views

回答

17

如今,苹果的官方建议是:

- (id)init{ 
    self = [super init]; 
    if(self){ 
     _rssItems = [[NSMutableArray alloc]init]; 
    } 
    return self; 
} 

的想法是,init(特别是在这种情况下,[super init])被允许返回比自身以外的对象,在这种情况下,预期的行为应该使用该对象 - 最简单的方法是将self设置为super返回的值。另请注意,return self;正常工作,无论self是否为零,因此您的if正好相反。

当然,类不执行该切换绝招 - 但这是很好的做法反正因为苹果希望大家利用这个确切的模式对他们init是,所以即使你的子类,目前工作没有分配给self,他们可以在未经警告的情况下轻易改变这种行为。

+0

谢谢,但现在我的应用程序崩溃,因为EXC_BAD_ACCESS ...奇怪,因为上一期消失。 – AmiiQo

+0

刚刚解决它,谢谢! – AmiiQo

+0

谢谢andyvn22。 – Morkrom