2014-03-30 31 views
22

在iOS 7.0中,NSWeekCalendarUnit已被棄用。該文件說,它必須被替換:如何在UILocalNotification的上下文中替換棄用的NSWeekCalendarUnit?

使用NSCalendarUnitWeekOfMonth或NSCalendarUnitWeekOfYear,這取決於你的意思

我使用NSWeekCalendarUnit每週提醒,我要挑哪一個 得到相同的意義?我不明白NSCalendarUnitWeekOfMonthNSCalendarUnitWeekOfYear之間的區別。

有人在SO上詢問了相同的question,沒有令人信服的答案。

這很讓人困惑。 Next week在我的理解原子。今天是Sun 30 March 2014。因此Next week將始終爲Sun 6 March 2014。這怎麼可能從一個月或一年的角度改變?

+0

通常情況下,NSCalendarUniwWeekOfMonth將在本月的第一週返回1,無論月份的值是多少,而NSCalendarUnitWeekOfYear將返回不同的值(一年大約有52周,一個月有4/5)。 – Larme

+0

謝謝,這是什麼意思在UILocalNotification的上下文? :) – Houman

+1

我建議每年使用NSCalendarUnitWeekOfYear來獲取提醒,因爲我認爲使用NSCalendarUnitWeekOfMonth將僅用於當前月份(值將變爲1到4)。要進行調試,請在日期中添加一週,然後重複查看這兩個NSDateComponents值。 – Larme

回答

20

如果您正在使用NSWeekCalendarUnit觸發每週提醒,與NSCalendarUnitWeekOfYear更換:

if (days == 7) localNotif.repeatInterval = NSWeekCalendarUnit;  // deprecated 
if (days == 7) localNotif.repeatInterval = NSCalendarUnitWeekOfYear; 

你應該找到你每週的通知仍然正常工作。

Apple的文檔應該更新以提供適當替換的指導。

相關問題