NSDateComponents
week
ist seit iOS8 veraltet. Apple schlägt stattdessen die Verwendung von weekOfMonth
oder weekOfYear
vor, je nach Kontext, aber sie funktionieren auf andere Weise. Zum Beispiel:NSDateComponents Woche arbeitet anders auf iOS8
components1 = [calendar components:NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit
fromDate:[self date7DaysAgo]
toDate:[NSDate date]
options:0];
Komponenten1 kehrt Monat = 0, Woche = 1, Tag = 0, weekOfMonth
und weekOfYear
beide gleich 2147483647 (integer Maximalwert).
components2 = [calendar components:NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit
fromDate:[self date30DaysAgo]
toDate:[NSDate date]
options:0];
Komponenten2 kehrt Monat = 1 (Ich weiß, es hängt davon ab, aber es ist nur ein Beispiel), Woche = 0, Tag = 0, weekOfMonth
und weekOfYear
beide gleich 2147483647 (integer Maximalwert).
Week
gibt die Anzahl der Wochen während eines bestimmten Zeitraums zurück (wenn es eine Woche war oder mehrere) und es ist völlig anders als die Anzahl der Wochen in einem Monat oder Jahr. Warum sollte Apple stattdessen vorschlagen, dies zu verwenden?
Was wird mit der Methode date7DaysAgo und date30DaysAgo durchgeführt? – Apurv
Datum vor 7 oder 30 Tagen wird zurückgegeben. Es kann zum Beispiel sein: '[[NSDate Datum] dateByAddingTimeInterval: -60 * 60 * 24 * 7] (Ich weiß, dass aufgrund der Sommerzeit oder etwas anderes kann es anders sein, aber wieder ist es nur ein Beispiel). – KlimczakM
Wenn Sie sich tatsächlich für die Dokumentation entscheiden, lautet NSWeekCalendarUnit "Veraltet in iOS 8.0". (Seltsamerweise sind das auch alle anderen Einheiten.) –