if(self=[super init]) 为什么加if 2016-08-01 本文已影响18人 兰章海晏 if(self=[super init])为什么不用“==”而用“=”: 这里不是判断self与[super init]是否相等,而是判断是否可以成功初始化。 [super init]:父类初始化成功的话,通过=给self,这样self成为一个非空对象,整个来说即非false(非NO)。 于是也就变成了: if ( !false ){ //成功初始化后执行的代码 } 如果init失败 self则为空 if条件为假 于是if段内语句不执行