2012-04-07 3 views
0

Я прочитал документацию по UILocalNotification, и пример показывает использование NSDateComponents, а затем установку недели, дня, месяца и т. Д., Чтобы запланировать уведомление. Я в основном пытаюсь сделать что-то похожее на будильник, который будет повторяться каждый день в определенное время. У меня есть время в UIPickerView, и я создаю NSDate с того времени для моего объекта. Поэтому я хватаю время, и я стараюсь наметить такое уведомление:UILocalNotification с NSDate

NSDate *date = [dateFormatter dateFromString:s]; 
    NSCalendar *calender = [NSCalendar currentCalendar]; 
    NSLog(@"%@", s); 
    UILocalNotification *note = [[UILocalNotification alloc] init]; 
    note.alertAction = alarm.name; 
    note.alertBody = alarm.note; 
    note.fireDate = date; 
    note.timeZone = [[NSCalendar currentCalendar] timeZone]; 
    note.repeatInterval = NSDayCalendarUnit; 
          note.timeZone = [NSTimeZone systemTimeZone]; 

    [[UIApplication sharedApplication] scheduleLocalNotification:note]; 

Могу ли я это сделать? Или мне нужно использовать NSDateComponents. Мой код в настоящее время не запускает уведомление, и мне было интересно, возможно ли вообще инициировать уведомление, или если вам нужно использовать NSDateComponents.

Кроме того, если мне нужно использовать NSDateComponents, то как мне просто получить текущий день, чтобы я мог установить будильник на этот день, и я предполагаю, что оттуда повторный интервал вступит в силу в течение следующих дней.

Спасибо!

ответ

0

до тех пор, пока firedate является действительным NSDate, будет отправлено уведомление. Это код, который я использую в App Time

 UILocalNotification *localNotification = [[UILocalNotification alloc] init]]; 

     localNotification.fireDate = [NSDate date]; 


     localNotification.timeZone = [NSTimeZone defaultTimeZone]; 
     localNotification.alertBody = @"some string"; 
     localNotification.repeatInterval = NSWeekCalendarUnit; 
     localNotification.repeatCalendar = [NSCalendar currentCalendar]; 
     localNotification.soundName = UILocalNotificationDefaultSoundName; 

     [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 

проверки даты вы передаете к firedate является действительным NSDate. Я не уверен, нужен ли код повторения часовых поясов, который вы используете? это может вызвать проблемы.

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