Ich suche nach einem Beispiel, in dem + autoupdatingCurrentCalendar
anstelle von + currentCalendar
verwendet würde. Genauer gesagt, wo die -Werte basierend auf dem Kalender automatisch geändert werden, wenn sich der Kalender ändert. Benötige ich Bindungen für diese oder so?
Die Dokumentation besagt:
Beachten Sie, dass beim Zwischenspeichern von Werten basierend auf der Kalender oder verwandte Informationen Diese Caches werden natürlich nicht sein wird automatisch durch die Aktualisierung aktualisiert des Kalenderobjekts.
Vielen Dank im Voraus
currentCalendar
gibt die zwischengespeicherte Version des aktuellen Systemkalenders zurück, während autoupdatingCurrentCalendar
immer die neueste Version des Systemkalenders zurückgibt.
Das ist wichtig, wenn Sie Daten basierend auf den verschiedenen Parametern eines Kalenders wie Anzahl der Tage in einem Monat, Anzahl der Wochen pro Jahr oder Anzahl der Stunden pro Tag präsentieren.
Um ehrlich zu sein, ich weiß nicht, warum Apple Ihnen die Möglichkeit gibt, veralteten Wert zu erhalten, indem Sie currentCalendar
verwenden.
Es sieht so aus, als hätten sie eine interne API, mit der Sie Caches von NSCalendar
manipulieren können, um eine bessere Leistung zu erzielen. Da es jedoch nicht öffentlich ist, gibt es keinen Grund, currentCalendar
zu verwenden.
Das heißt, verwenden Sie immer autoupdatingCurrentCalendar
.
Unter OS X können Sie mehrere Prozesse gleichzeitig ausführen. Einer könnte Ihr Prozess sein, der autoupdatingCurrentCalendar
verwendet. Die andere könnte Systemeinstellungen sein.
Mit Systemeinstellungen können Sie Ihre Kalendereinstellungen anpassen. Sie können den ersten Wochentag als einen anderen als den Standardtag (Sonntag) festlegen. Oder Sie können einen ganz anderen Kalender wählen. Wenn Sie autoupdatingCurrentCalendar
verwenden, werden diese Änderungen automatisch übernommen. Wenn Sie es nicht verwenden, werden sie nicht.
Ich schätze, dass es nur nützlich ist, wenn Sie den Kalender zur weiteren Verwendung im Speicher ablegen. Wenn sich die Kalendereinstellungen ändern, berücksichtigt der gespeicherte Kalender diese Änderungen, wenn Sie autoupdatingCurrentCalendar verwendet haben. Wenn Sie nur currentCalendar verwenden, bleibt es bei dem ersten Anruf.
Tags und Links objective-c cocoa nscalendar