if(self=[super init]) 为什么加if

if(self=[super init])为什么不用“==”而用“=”:


这里不是判断self与[super init]是否相等,而是判断是否可以成功初始化。 [super init]:父类初始化成功的话,通过=给self,这样self成为一个非空对象,整个来说即非false(非NO)。 于是也就变成了: if ( !false ){ //成功初始化后执行的代码 }   如果init失败 self则为空 if条件为假 于是if段内语句不执行

你可能感兴趣的:(if(self=[super init]) 为什么加if)