Example for when to use [NSCalendar autoupdatingCurrentCalendar]
I'm looking for an example where + autoupdatingCurrentCalendar
would be used instead of + currentCalendar
. More specifically where the values based on the calendar are automatically changed when the calendar changes. Do I need bindings for this or something like that?
The docs state:
开发者_如何学运维Note that if you cache values based on the calendar or related information those caches will of course not be automatically updated by the updating of the calendar object.
Thanks in advance
currentCalendar
returns cached version of current system calendar, while autoupdatingCurrentCalendar
always returns most recent version of system calendar.
That is important, when you are presenting data based on the various parameters of a calendar like number of days in a month, number of a weeks in year or number of hours in a day.
To be honest, I don't know why Apple gives you an opportunity to get outdated value by using currentCalendar
.
It looks like they have internal API that allows you to manipulate caches of NSCalendar
, so you can achieve better performance. But since it is not public, there is no reason to use currentCalendar
.
That is, always use autoupdatingCurrentCalendar
.
Well, on OS X you can be running multiple processes simultaneous. One could be your process that uses the autoupdatingCurrentCalendar
. The other could be System Preferences.
System Preferences allows you to customize your calendar settings. You can choose the first day of the week to be something other than the default (Sunday). Or you can choose a whole different calendar altogether. If you use the autoupdatingCurrentCalendar
, these changes will be picked up automatically. If you don't use it, they won't.
I guess that it is only usefull if you store the calendar in memory for further use. Doing that way, if the calendar settings change, your stored calendar will take account of those changes if you used autoupdatingCurrentCalendar. If you only used currentCalendar, it wil stay at the state it was at your first call.
精彩评论