Я пытаюсь получить номер недели года из-за NSDate
с этим кодом:Сбой в NSDateComponents weekOfYear
int which = NSYearCalendarUnit | NSMonthCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekOfYearCalendarUnit | NSQuarterCalendarUnit;
NSDate* date= [NSDate date];
NSDateComponents* comps= [[NSCalendar currentCalendar] components:which fromDate:date];
today.weekNumber= comps.weekOfYear;
Однако, по какой-то причине происходит сбой, и заявив:
reason: -[NSDateComponents weekOfYear]: unrecognized selector sent to instance
остальные компоненты работают нормально, когда я раскомментировать НомерНедели часть:
int which = NSYearCalendarUnit | NSMonthCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekOfYearCalendarUnit | NSQuarterCalendarUnit;
NSDate* date= [NSDate date];
NSDateComponents* comps= [[NSCalendar currentCalendar] components:which fromDate:date];
// today.weekNumber= comps.weekOfYear;
today.month= comps.month;
today.year= comps.year;
today.quarter= comps.quarter;
today.hour= comps.hour;
today.minute= comps.minute;
today.second= comps.second;
Согласно документам, NSDateComponents
должно иметь свойство под названием weekOfYear
, не так ли?
Я смущен, действительно.
D'oh! Я не знал об этом. Есть ли другой способ получить weekOfYear, когда я на iOS 4? – user826955
Проверьте свойство «неделя» - может быть, этого вам будет достаточно. Вы также можете попробовать играть с NSDateFormatter, чтобы получить это значение в виде строки, а затем преобразовать его в число (например, см. Обсуждение здесь http://www.iphonedevsdk.com/forum/iphone-sdk-development/10100-getting-week -количество-объективно-c.html) – Vladimir