Por que verificar se o objeto é nulo

5

Qual é o objetivo do if statement no código a seguir:

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

Qual é o objetivo da verificação se a atribuímos a nil e qual é o sentido de atribuí-la a nil se não colocarmos nada nela?

    
por Jessica 16.06.2015 / 05:50
fonte

1 resposta

3

Em termos de código de trabalho, você está correto, não faz sentido verificar nulo aqui. Você pode reescrever isso como:

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

É difícil saber sem ver toda a base de código porque isso está sendo feito. Uma possibilidade é que o autor original espere substituir, por fim, myMethod por uma chamada que potencialmente tenha passado em um valor não nulo array ou espere que eventualmente adicione uma lógica mais complexa na alocação.

A outra possibilidade muito real (e a mais provável, na minha opinião) é que quem a escreveu tinha um hábito arraigado de sempre verificar por nada e simplesmente não estava pensando. Como isso não tem efeito sobre o código, ninguém notou, ou pode ser incomodado para corrigir.

    
por 16.06.2015 / 18:23
fonte