Ho un inizializzatore personalizzato come questo:
- (id)initWithLocation:(CLLocation *)location
{
if (location == nil)
{
return nil;
}
self = [super init];
if (self)
{
self.location = location;
}
return self;
}
A volte i miei colleghi mi chiedono di racchiudere tutto (tranne il return
), che segue la prima coppia di parentesi graffe, in una clausola else
:
- (id)initWithLocation:(CLLocation *)location
{
if (location == nil)
{
return nil;
}
else
{
self = [super init];
if (self)
{
self.location = location;
}
return self;
}
}
Ma non sono sicuro. Qual è il punto? La prima condizione if
è un rapido controllo della morte. Se il parametro non viene fornito, non viene fornita alcuna istanza. Questo serve da imposizione per fornire un parametro. else
sembra qui superficiale poiché è implicito nel flusso del codice.
Quale sarebbe il vantaggio di averlo?