NSDateComponents возвращает ноль

Я пытаюсь получить объект NSDate с часами, минутами и вторым инициализированным до 0. Я использую код ниже, чтобы получить его, но по какой-то причине я получаю нуль от [NSDateComponents date]. Что не так с моим кодом?

NSCalendar *gregorian = [[[NSCalendar alloc]
                          initWithCalendarIdentifier:NSGregorianCalendar] autorelease];

NSDate *now = [[[NSDate alloc] init] autorelease];
NSDateComponents *nowDc = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit) 
        fromDate:now];
// this returns nil!
NSDate *todayStart = [nowDc date];

Ответы

Ответ 1

Когда вы получаете компоненты из экземпляра календаря, календарь экземпляра NSDateComponents не установлен.

Но вы должны установить календарь, прежде чем сможете использовать [components date], потому что без календаря нет даты.

Итак, попробуйте добавить [nowDc setCalendar:gregorian];