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];