2014-08-30 61 views
2

我試圖重現默認時鐘的某些功能,我讓用戶選擇鬧鐘的重複頻率。問題在於,不同的NSCalendar設置會在一週中爲您提供不同的名稱。如何以一種方式存儲所選星期幾,如果用戶更改其日曆,頻率總是會在一週的正確日期?使用NSDate和NSDateFormatter存儲星期幾的最佳方法

+0

假設您堅持使用7天的格里曆日曆,只需存儲一週中某天的數值。 – 2014-08-30 20:21:41

+0

@HotLicks問題是我不能堅持一個日曆。我無法可靠地預測人們將會擁有什麼設置。 – InkGolem 2014-08-30 22:11:43

+0

如果你甚至不能假定公曆(即,你甚至不知道它是否是7天的一週),我不知道你如何期望存儲一週中的選定日期。 – 2014-08-30 23:11:11

回答

1

一個解決方案是檢查每次應用程序進入前臺時日曆是否更改,如果是,請從那裏進行適當更改。可能不是最優雅的解決方案,也不是最佳實踐,但它可以完成工作。

-2

(long) [dateYouWantToRemember timeIntervalSince1970]並將其存儲在屬性文件或其他類似文件中。 (你可以使用timeIntervalSinceReferenceDate,但1970年的數字是「UNIX紀元日期」和更加規範 - 你可以在網上找到,以檢查它的轉換器。)

後來,(可能)不同的歷下,做[NSDate dateWithTimeIntervalSince1970:theLongYouStored]你將在新日曆中重建日期。

現在使用NSCalendar/NSDateComponents查找該日期的新的序號星期幾,並使用[NSDateFormatter weekdaySymbols]來獲取星期幾名稱的列表。使用序號索引列表以獲取新的日期名稱。根據您的應用程序的需要,使用NSDateComponents在您的日期進行算術以選擇一週中某一天的下一個日期。

+0

(對未來的讀者:這個答案只是簡單地被低估了,並且所述downvote並不反映包含在答案中的出色建議。) – 2014-09-05 15:24:55