2011-09-08 55 views
1

我有2個問題。UILocalNotification repeatInterval

  1. 如果我理解本地通知按repeatInterval讓我有一個通知,安排一次,它在相同的時間間隔,每星期或一個月或一週中的哪一天重複。我試圖讓重複的間隔在星期二說出一次,每週它會在同一天即星期二再次觸發。這應該每週進行一次,而不需要安排另一個通知。那是對的嗎。沒有發生。我在代碼中做錯了什麼,或者我正在測試它錯誤。

  2. 在模擬器中,我運行應用程序安排通知。我看到的通知。然後,我退出應用程序,並將系統日期設置爲一週後的同一天的一週,但沒有通知,所以我可以通過更改計算機系統時鐘來測試此通知。我不想每個測試都要等一個星期。

下面是代碼

- (void) scheduleNotificationWithItem:(NSDate *)date interval:(int)frequency { 
UILocalNotification *localNotif = [[UILocalNotification alloc]init]; 

if (localNotif == nil) { 
     return; 
} 

localNotif.fireDate = [date addTimeInterval:frequency]; 
localNotif.timeZone = [NSTimeZone defaultTimeZone]; 
localNotif.repeatCalendar = [NSCalendar currentCalendar]; 
localNotif.repeatInterval = kCFCalendarUnitWeekday; 
localNotif.applicationIconBadgeNumber = 1; 
localNotif.alertBody = [NSString stringWithFormat:NSLocalizedString(@"%@.",nil),@"Weekly Reminder"]; 
localNotif.alertAction = NSLocalizedString(@"View Notification Details", nil); 
localNotif.soundName = UILocalNotificationDefaultSoundName; 

[[UIApplication sharedApplication]scheduleLocalNotification:localNotif]; 

[localNotif release]; 
} 

請幫助這是推動我瘋了。 謝謝, 院長

回答

6

1)將您的重複間隔設置爲'NSWeekCalendarUnit'應該做的伎倆。它與原始通知在同一天和同一時間每週重複一次。

2)我沒有在模擬器中測試過,但改變實際iPhone上的時鐘確實會觸發未來的警報。

+0

for#2,它可以在模擬器中工作,如果您在運行模擬器的任何設備(Macbook或其他Macs [或Hackintosh])上更改系統時鐘。我已經在5.1模擬器和6.0模擬器上測試過這個... – Cashew

相關問題