2016-03-19 3 views
2

Я искал, прежде чем задавать вопрос, но ничего не нашел. Я использую этот код, чтобы запланировать уведомления в моем приложении:Получение UILocalNotification после добавления в Swift

let firstFormatter = NSDateFormatter() 
    firstFormatter.dateFormat = "MMMM, dd, HH:mm" 

    let date = "\(dueDateTxtField.text) \(notificationTimeTxtField.text)" 

    let fireDate = firstFormatter.dateFromString(date) 

    let realNotification = UILocalNotification() 
    realNotification.fireDate = fireDate 
    realNotification.soundName = UILocalNotificationDefaultSoundName 
    realNotification.alertTitle = "Homework reminder" 
    realNotification.alertBody = "You have a pending \(subjectTxtField.text) homework for tomorrow." 


    let secondFormatter = NSDateFormatter() 
    secondFormatter.dateFormat = "yyyy" 

    let falseNotification = UILocalNotification() 
    falseNotification.fireDate = secondFormatter.dateFromString("2020") 
    falseNotification.soundName = UILocalNotificationDefaultSoundName 
    falseNotification.alertTitle = "This notification will never get to you" 
    falseNotification.alertBody = "Never" 

    if notifyMeSegmentedControl.selectedSegmentIndex == 0 { 
     UIApplication.sharedApplication().scheduleLocalNotification(realNotification) 
    } else { 
     UIApplication.sharedApplication().scheduleLocalNotification(falseNotification) 
    } 

Я использую UISegmentedControl, так что пользователь может выбрать, чтобы получить или не уведомление. Дело в том, что, как только я добавляю новую домашнюю работу (приложение - домашнее приложение, где вы добавляете тему, описание и т. Д.), Я уже получаю уведомление, даже если я установил «notificationTimeTxtField» на время, не сейчас.

Пожалуйста, расскажите мне, что я делаю неправильно. Спасибо заранее!

РЕДАКТИРОВАТЬ: Я ДОЛЖЕН ПРИМЕНИТЬ ПОЖАРНУЮ ДАТУ И ИСПОЛЬЗОВАТЬ НИЛЬ !! Я понятия не имею, почему в текстовых полях есть текст!

+1

Когда вы печатаете дату своего огня в консоли, это дата в будущем? Кроме того, для случая, когда пользователь не хочет получать уведомление, возможно, захочет использовать UIApplication.sharedApplication(). CancelAllLocalNotifications() –

+0

Я пробовал это сейчас и его печать нуль !!! Как это возможно? –

+0

Вы не форматируете строку правильно, чтобы конвертировать дату. Что такое DueTextField и notificationTimeTextField? Отформатированы ли они точно так же, как ваш формат даты –

ответ

0

Я установил его. Проблема заключалась в том, что dueDateTxtField был отформатирован следующим образом: «MMMM, dd, yyyy», и я пытался отформатировать его как «MMMM, dd». Поэтому я исправил его, форматируя как в одном формате, так и отлично.

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