何时使用 [NSCalendar autoupdatingCurrentCalendar] 的示例

发布于 2024-10-20 21:39:43 字数 271 浏览 0 评论 0原文

我正在寻找一个示例,其中使用 + autoupdatingCurrentCalendar 而不是 + currentCalendar。更具体地说,当日历更改时,基于日历的值会自动更改。我需要绑定这个或类似的东西吗?

文档指出:

请注意,如果您基于以下条件缓存值 日历或相关信息 这些缓存当然不会 通过更新自动更新 日历对象的。

提前致谢

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

屌丝范 2024-10-27 21:39:43

currentCalendar 返回当前系统日历的缓存版本,而 autoupdatingCurrentCalendar 始终返回系统日历的最新版本。

当您根据日历的各种参数(例如一个月中的天数、一年中的周数或一天中的小时数)显示数据时,这一点很重要。

说实话,我不知道为什么 Apple 给你一个通过使用 currentCalendar 获取过时值的机会。
看起来他们有内部API,允许你操作NSCalendar的缓存,这样你就可以获得更好的性能。但由于它不是公开的,因此没有理由使用currentCalendar

也就是说,始终使用 autoupdatingCurrentCalendar

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.

南街九尾狐 2024-10-27 21:39:43

那么,在 OS X 上您可以同时运行多个进程。其中之一可能是使用 autoupdatingCurrentCalendar 的进程。另一个可能是系统偏好设置。

系统偏好设置允许您自定义日历设置。您可以选择一周的第一天,而不是默认日期(星期日)。或者您可以选择完全不同的日历。如果您使用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.

你穿错了嫁妆 2024-10-27 21:39:43

我想只有将日历存储在内存中以供进一步使用时才有用。这样,如果日历设置发生更改,并且您使用了 autoupdatingCurrentCalendar,则您存储的日历将考虑这些更改。如果您只使用 currentCalendar,它将保持在您第一次调用时的状态。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文