我一直在嘗試使用UILocalNotification並將時區設置爲其他時區以外的默認值。UILocalNotification與非默認時區
目的是做類似的事情: - 用戶將安排時間和時區的警報 - 當該時區變爲指定時間時顯示警報。
在更多口頭描述中,假設我住在LosAngeles,我的gf在芝加哥。我想在芝加哥早上7點設置警報,平日。
對於一個提醒,我可以做沒有時區,做絕對時間。但我想允許用戶設置重複標誌,在這種情況下,我似乎無法做到 - 我嘗試將localnotification的timezone屬性設置爲芝加哥,如上例所示,但本地通知不會觸發。
我登錄時的序列化過程中uinocalnotification,這裏是一個輸出:
"<UIConcreteLocalNotification: 0xfb25a50>{fire date = 2011-02-06 06:02:00 -0800, time zone = America/Chicago (CST) offset -21600, repeat interval = 16, next fire date = 2011-02-06 08:02:00 -0800}"
我設置firedate爲上午9時02分芝加哥絕對時間和時區以CST - 和日誌也提到火日期的確我的當地時間是06:02。然而,沒有任何反應。此外,下一個火災日期很奇怪,因爲它應該是+1天,而不是+2小時。
下面是我設置它的方法: Class classUILocalNotification = NSClassFromString(@「UILocalNotification」);
if (classUILocalNotification != nil) {
id note = [[classUILocalNotification alloc] init];
NSString *body = @"body message";
switch (repeatflag) {
case 1: [note setRepeatInterval:NSDayCalendarUnit]; break;
case 2: [note setRepeatInterval:NSWeekdayCalendarUnit]; break;
case 3: [note setRepeatInterval:NSWeekCalendarUnit]; break;
case 4: [note setRepeatInterval:NSMonthCalendarUnit]; break;
case 5: [note setRepeatInterval:NSYearCalendarUnit]; break;
default: break;
}
[note setFireDate:dt];
[note setAlertBody:body];
[note setTimeZone:timezone];
[note setHasAction:NO];
}
這似乎是一些未知的行爲。任何人都有更好的方式來實現我想要做的事情? 謝謝!
發佈一些更多的代碼,以便我們可以檢查確切的問題是! – KingofBliss 2011-02-07 15:42:10