Я пытался использовать UILocalNotification и установить часовой пояс на другой часовой пояс, отличный от моего по умолчанию.
Цель состоит в том, чтобы сделать что-то вроде: -Пользователь будет планировать оповещение с указанием времени и часового пояса -Показать оповещение, когда эточасовой пояс становится указанным временем.
В более словесном описании, скажем, я живу в Лос-Анджелесе, а моя подруга - в Чикаго.Я хочу настроить оповещение, когда в Чикаго 7:00, по будням.
Для одного оповещения я могу обойтись без часового пояса, чтобы сделать абсолютное время.Но я хочу разрешить пользователям устанавливать флаги повтора, и в этом случае я не могу этого сделать - я попытался установить для свойства часового пояса localnotification значение chicago, как в примере выше, однако локальное уведомление не будет запускаться.
Я зарегистрировался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 am chicago абсолютное время и часовой пояс на 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];
}
Это похоже на какое-то неизвестное поведение.У кого-нибудь есть лучший способ добиться того, что я пытаюсь сделать?Спасибо!