2012-03-08 2 views
0

Я получаю странную проблему в iOS 5.0 (9A334). Проблема заключается в том, что я использую CFCalendarGetOrdinalityOfUnit, чтобы получить день недели для конкретной даты. CFCalendarGetOrdinalityOfUnit дает неожиданное значение в iOS 5.0 (9A334)

CFCalendarRef theCalendar = CFCalendarCopyCurrent(); 
CFAbsoluteTime newTime = 0; 
const char format[] = "yMdHms"; 
CFCalendarComposeAbsoluteTime (theCalendar,&newTime,format,theYear, theMonth,theDay, 0, 0, 0); 
NSInteger lastDayOfWeekInPreviousMonth = 
CFCalendarGetOrdinalityOfUnit (calendar,kCFCalendarUnitDay,kCFCalendarUnitWeek,absTime);

возвращает theExpectedValue - 1.
Значения для theYear, theMonth, theDay Посылаю сегодняшние ценности.
Но в других версиях iOS (например, 4.3 и 5.0.1) он правильно возвращает ожидаемое значение. Пожалуйста, предоставьте мне решение. Я застрял здесь.

ответ

0

Получил ответ - CFCalendarGetOrdinalityOfUnit для kCFCalendarUnitWeek может возвращать разные значения для разных версий iOS. Поэтому мы должны использовать NSDateFormatter в определенную дату, чтобы получить weekDay.