Perché controllare se l'oggetto è nullo

5

Qual è il punto di if statement nel seguente codice:

- (NSArray *)myMethod
{
    NSArray *array = nil;
    if (!array) {
        array = [[NSArray alloc] initWithObjects...]
    }
    return array;
}

Qual è il punto del controllo se lo abbiamo assegnato a nil e a che punto è assegnarlo a nil se non ne abbiamo inserito nulla?

    
posta Jessica 16.06.2015 - 05:50
fonte

1 risposta

3

In termini di codice di lavoro, sei corretto, non c'è motivo di controllare nil qui. Potresti riscriverlo come:

- (NSArray *)myMethod
{
    return [[NSArray alloc] initWithObjects...]
}

È difficile sapere se non si vede l'intero codebase perché questo è stato fatto. Una possibilità è che l'autore originale si aspettasse di sostituire finalmente myMethod con una chiamata che potenzialmente è passata in un% non nullo% di co_de o si prevede che alla fine aggiunga più logica complessa nell'allocazione.

L'altra possibilità molto reale (e probabilmente la più probabile secondo me) è che chiunque l'abbia scritto ha avuto un'abitudine radicata nel controllare sempre e per niente e non stava pensando. Dal momento che questo non ha alcun effetto sul codice, nessuno ha mai notato, o potrebbe essere preso la briga di risolvere.

    
risposta data 16.06.2015 - 18:23
fonte

Leggi altre domande sui tag