2013-04-03 3 views
0

Я о планировании местных уведомлений, как такUILocationNotification не подчиняясь сбережений дневного света

+ (void) addLocalNotification: (Event *) event { 
    UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 
    localNotif.fireDate = event.scheduleTime; 
    localNotif.alertBody = @"Time to apply drops\nPlease press view to see details"; 
    localNotif.soundName = ALARM_SOUND_FILE; 
    localNotif.timeZone = [NSTimeZone localTimeZone]; 
    localNotif.applicationIconBadgeNumber = 1; 
    NSDictionary * dict = [NSDictionary dictionaryWithObjectsAndKeys:event.number,LN_EVENT_KEY, ACTION_EVENT, LN_ACTION_KEY, nil]; 
    localNotif.userInfo = dict; 
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 
} 

Однако после того, как часы пошли вперед это в прошлых выходных, уведомление, запланированное до часов отойдя стреляю через час, то есть 19:00 вместо 18:00

Документация на яблоко говорит, что время «настенных часов» устанавливает часовой пояс, как указано выше.

Любые предложения приветствуются.

+0

И 'event.scheduleTime' является правильным NSDate для localTimeZone? –

+0

Нет - При дальнейшей проверке код, который выполняет планирование в будущем, не учитывает переход на летнее время. Он просто добавил двадцать четыре часа и не использовал формат даты, чтобы получить правильное время по Гринвичу - извините – user2239244

+0

Я еще не могу опубликовать ответ, нужно подождать еще семь часов, sigghhh – user2239244

ответ

2

Таким образом, вместо того, чтобы добавить интервал времени в 24 часов я использовал ..

+ (NSDate *) addOneDayToDate: (NSDate *) date { 
    return [currentCalendar dateByAddingComponents:oneDay toDate:date options:0]; 
} 

где

oneDay = [[NSDateComponents alloc] init]; 
[oneDay setDay:1]; 
currentCalendar = [NSCalendar currentCalendar]; 

Это работает в большинстве случаев, если дата не с полуночи до времени часы обычно меняются примерно в 2 часа ночи. Не нужно было логики для этого, так как время будет после этого.

Смежные вопросы