Standard constructor boilerplate is simpler:
if (self = [super init]) {
/* do the init */
}
return self;
Huge advantage of this is that you can implement object pools, singletons, etc. transparently.