iPhone - Use of self = [super init] when [super init] fails
问题 What is the difference beetween : // 1 -(id) init { self = [super init]; if (self) { ... do init .... } return self; } // 2 - I guess it's exactly the same as previous -(id) init { if (self = [super init]) { ... do init .... } return self; } // 3 - is this one a really bad idea and if yes, Why ? -(id) init { self = [super init]; if (!self) return nil; ... do init .... return self; } // 4 - I think this one sounds OK, no ? But what is returned... nil ? -(id) init { self = [super init]; if (