Сбой в NSDateComponents weekOfYear

Я пытаюсь получить номер недели года из NSDate с помощью этого кода:

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, не так ли?

Я в замешательстве, правда.


person user826955    schedule 19.01.2012    source источник


Ответы (1)


-weekOfYear метод доступен в NSDateComponents, начиная с iOS 5.0, поэтому, если вы пытаетесь использовать этот метод в более ранних версиях ОС, это приведет к сбою.

person Vladimir    schedule 19.01.2012
comment
О! Я не знал об этом. Есть ли другой способ получить неделю года, когда я на iOS 4? - person user826955; 19.01.2012
comment
Проверьте недвижимость на неделю - может быть, вам этого будет достаточно. Вы также можете попробовать поиграть с NSDateFormatter, чтобы получить это значение в виде строки, а затем преобразовать его в число (например, см. обсуждение здесь iphonedevsdk.com/forum/iphone-sdk-development/) - person Vladimir; 19.01.2012