CFCalendarGetOrdinanityOfUnit fornisce un valore inaspettato in iOS 5.0 (9A334)
-
09-12-2019 - |
Domanda
Ricevo uno strano problema in iOS 5.0 (9A334).Il problema è che utilizzo CFCalendarGetOrdinalityOfUnit per ottenere il giorno della settimana per una data particolare.
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 );
Restituisce il valore atteso - 1.
I valori per theYear, theMonth, theDay invio i valori di oggi.
Ma in altre versioni di iOS (come 4.3 e 5.0.1) restituisce correttamente il valore previsto.Per favore forniscimi una soluzione.Sono bloccato qui.
Soluzione
Ho ottenuto la risposta: CFCalendarGetOrdinalityOfUnit per kCFCalendarUnitWeek potrebbe restituire valori diversi per diverse versioni di iOS.Quindi dobbiamo utilizzare NSDateFormatter in una data particolare per ottenere weekDay.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow