Это работает для меня во всех методах этого контроллера
Необходимо только освободить текущий календарь перед возвратом индекса.
+ (int) currentDayOfWeek
{
CFCalendarRef currentCalendar = CFCalendarCopyCurrent ();
CFIndex respuesta = CFCalendarGetOrdinalityOfUnit (
currentCalendar,
kCFCalendarUnitDay,
kCFCalendarUnitWeek,
[self currentAbsoluteTime]
);
CFRelease(currentCalendar);
return respuesta;
}
+ (int) daysInCurrentMonth
{
CFCalendarRef currentCalendar = CFCalendarCopyCurrent ();
CFRange r = CFCalendarGetRangeOfUnit (
currentCalendar,
kCFCalendarUnitDay,
kCFCalendarUnitMonth,
[self currentAbsoluteTime]
);
CFRelease(currentCalendar);
return r.length;
}