Почему вы должны проверять статическую переменную на nil, если она была инициализирована на nil в предыдущей строке?

Ниже приведен пример кода из учебника Apple по основным данным iOS , и мне показалось странным, что условные операторы проверяют, равен ли объект нулю. . Не будет ли объект всегда оцениваться как nil, если строка перед условным выражением устанавливает для объекта значение nil?

// A date formatter for the time stamp
static NSDateFormatter *dateFormatter = nil;
if (dateFormatter == nil) {
    dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
}

8
задан VikingoS says Reinstate Monica 7 January 2012 в 22:03
поделиться