2

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必要ですよね?

私は混乱しています、本当に。

4

1 に答える 1

2

-weekOfYearメソッドはNSDateComponentsiOS 5.0 の起動時に使用できるため、以前の OS バージョンでそのメソッドを使用しようとすると、クラッシュが発生します。

于 2012-01-19T07:56:58.677 に答える