2016-09-08 2 views
0

Ich habe eine iOS-App erstellt, die täglich um 11:00 Uhr eine lokale Benachrichtigung sendet.Lokale iOS-Benachrichtigung wird täglich erhöht

Ich habe this gefolgt!

und mein Code ...

func setNotification(){ 

    let calendar: NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)! 
    var dateFire=NSDate() 

    var fireComponents=calendar.components([.Month, .Day, .Hour, .Minute], fromDate:NSDate()) 

    if (fireComponents.hour >= 11) { 
     dateFire=dateFire.dateByAddingTimeInterval(86400) // Use tomorrow's date 

     fireComponents=calendar.components([.Month, .Day, .Hour, .Minute], fromDate:NSDate()) 
    } 


    fireComponents.hour = 11 
    fireComponents.minute = 00 

    dateFire = calendar.dateFromComponents(fireComponents)! 

    let localNotification = UILocalNotification() 
    localNotification.fireDate = dateFire 
    localNotification.alertTitle = "Title" 
    localNotification.alertBody = "Body" 
    localNotification.repeatInterval = NSCalendarUnit.Day 

    UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 

} 

Nun ist die App funktioniert gut und Benachrichtigungen werden um 11:00 Uhr täglich gesendet, aber das Problem ist, dass sie von einem sind Inkrementieren täglich :(

Gestern ich hatte 6 eingegangenen Mitteilungen und heute erhielt ich 7 um 11.00 Uhr

Bitte helfen Sie mir dieses Problem zu erhalten.

Dank!

+0

Mögliche Duplikat [Empfangen von doppelten Push-Benachrichtigung ios9] (http://stackoverflow.com/questions/32840916/receiving-duplicate-push-notification-ios9) –

Antwort

0

Ich habe das versucht und es funktioniert. Sie prüfen, ob der Zustand und die Feuerkomponenten überschrieben sind, also ist es nutzlos.

let calendar: NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)! 
var dateFire=NSDate() 

let fireComponents = calendar.components([.Month, .Day, .Hour, .Minute], fromDate:NSDate()) 

fireComponents.hour = 7 
fireComponents.minute = 41 
fireComponents.second = 00 

dateFire = calendar.dateFromComponents(fireComponents)! 

let localNotification = UILocalNotification() 
localNotification.fireDate = dateFire 
localNotification.alertBody = "Body" 
localNotification.repeatInterval = NSCalendarUnit.Minute 

UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 

Für weitere Details https://wordpress.com/post/iosmygirlfriend.wordpress.com/48

+0

Vielen Dank für deine Zeit. Ja, es funktioniert gut, aber wenn Bedingung verwendet wird, wenn jemand eine Benachrichtigung verpasste, wird es an diesem Tag nicht gesendet und wird genau zum nächsten Tag geplant – Zeero0

Verwandte Themen