2014-09-30 8 views
6

NSDateComponentsweek 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?

+0

Was wird mit der Methode date7DaysAgo und date30DaysAgo durchgeführt? – Apurv

+0

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

+1

Wenn Sie sich tatsächlich für die Dokumentation entscheiden, lautet NSWeekCalendarUnit "Veraltet in iOS 8.0". (Seltsamerweise sind das auch alle anderen Einheiten.) –

Antwort

6

Verwenden Sie NSWeekOfMonthCalendarUnit oder NSWeekOfYearCalendarUnit anstelle von NSWeekCalendarUnit.

+0

Mein schlechtes. Ich dachte, dass es auf iOS8 anders funktioniert, aber weekOfYear wird hier die Arbeit machen. – KlimczakM

+0

Diese sind in 8 veraltet. (Und viel Glück, die Ersetzungen in Apples Dokumentation zu finden.) –