2011-03-08 25 views
8

我在尋找一個示例,其中使用+ autoupdatingCurrentCalendar而不是+ currentCalendar。更具體地說,當日歷更改時,基於日曆的值自動更改。我是否需要綁定這個或類似的東西?何時使用示例[NSCalendar autoupdatingCurrentCalendar]

的文檔狀態:

需要注意的是,如果你基於 緩存值,日曆或相關信息 這些緩存當然不會是 由日曆對象的更新 自動更新。

在此先感謝

回答

1

那麼,在OS X,你可以運行多個進程同時進行的。一個可能是你的過程,使用autoupdatingCurrentCalendar。另一個可以是系統偏好設置。

系統偏好設置允許您自定義日曆設置。您可以選擇一週中的第一天作爲默認(星期日)以外的其他日子。或者你可以完全選擇一個完全不同的日曆。如果您使用autoupdatingCurrentCalendar,這些更改將自動提取。如果你不使用它,他們不會。

0

我想只有將日曆存儲在內存中以備將來使用時纔有用。這樣做,如果日曆設置更改,則如果您使用autoupdatingCurrentCalendar,則存儲的日曆將考慮這些更改。如果你只使用currentCalendar,它將保持它在你第一次調用時的狀態。

4

currentCalendar返回當前系統日曆的緩存版本,而autoupdatingCurrentCalendar總是返回系統日曆的最新版本。

當您根據日曆的各種參數(例如一個月中的天數,一年中的某個週數或一天中的小時數)呈現數據時,這很重要。

說實話,我不知道蘋果爲什麼會給你一個使用currentCalendar獲得過時價值的機會。 看起來他們有內部的API,允許你操作NSCalendar的緩存,這樣你可以獲得更好的性能。但由於它不是公開的,所以沒有理由使用currentCalendar

也就是說,總是使用autoupdatingCurrentCalendar

+0

你的意思完全相反。 – CodenameLambda1 2014-05-06 05:08:05

+0

@ CodenameLambda1在最新版本的OSX上可能是這樣。但據我記得,我在10.6或10.7有問題 – Kentzo 2014-05-06 06:40:32