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

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

16 голосов
/ 27 февраля 2011

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

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 Ответ

34 голосов
/ 27 февраля 2011

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

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

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

...