我正在寻找一个使用+ autoupdatingCurrentCalendar
代替+ currentCalendar
的示例。更具体地说,当日历更改时,基于日历的值会自动更改。我需要绑定这个或类似的东西吗?
文档声明:
请注意,如果基于缓存值 日历或相关信息 那些缓存当然不会 通过更新自动更新 日历对象。
提前致谢
答案 0 :(得分:4)
currentCalendar
返回当前系统日历的缓存版本,而autoupdatingCurrentCalendar
始终返回最新版本的系统日历。
重要的是,当您根据日历的各种参数(如一个月中的天数,一年中的星期数或一天中的小时数)显示数据时。
说实话,我不知道为什么Apple会通过currentCalendar
让您有机会获得过时的价值。
看起来他们有内部API,允许您操作NSCalendar
的缓存,因此您可以获得更好的性能。但由于它不公开,因此没有理由使用currentCalendar
。
即,始终使用autoupdatingCurrentCalendar
。
答案 1 :(得分:1)
那么,在OS X上,您可以同时运行多个进程。一个可能是您使用autoupdatingCurrentCalendar
的流程。另一个可能是系统偏好。
系统偏好设置允许您自定义日历设置。您可以选择一周的第一天不是默认值(星期日)。或者你可以选择一个完整的不同日历。如果您使用autoupdatingCurrentCalendar
,则会自动获取这些更改。如果你不使用它,它们就不会。
答案 2 :(得分:0)
我想如果将日历存储在内存中以供进一步使用,它才有用。这样做,如果日历设置发生变化,如果您使用了autoupdatingCurrentCalendar,则存储的日历将考虑这些更改。如果你只使用currentCalendar,那么它将保持你第一次通话时的状态。