2016-05-23 8 views
1

Ich versuche, lokale Benachrichtigung an bestimmten Tag des Wochentags auszulösen, aber alle meine Versuche gescheitert sind, sollte die Benachrichtigung zu bestimmten Zeitpunkt des Wochentags ausgelöst werden, aber stattdessen wird sofort ausgelöst, ich suchte alle möglichen Lösungen im Stapelüberlauf, aber keine dieser Antworten haben mein Problem gelöst, wie kann ich dieses Problem lösen?Auslöser lokale Benachrichtigung an bestimmten Wochentag

func combineDate(time:NSDate,dayIndex:Int) -> NSDate { 

    let calendar: NSCalendar = NSCalendar.currentCalendar() 
    let components: NSDateComponents = calendar.components([.Year, .Month, .WeekOfYear, .Weekday], fromDate: time) 
    let component1 = NSDateComponents() 

    component1.weekday = dayIndex 
    component1.minute = components.minute 
    component1.hour = components.hour 
    let combinedDate: NSDate = calendar.dateFromComponents(component1)! 

    return combinedDate 
} 

Antwort

0

Sie müssen nur das Attribut fireDate in der lokalen Benachrichtigung festlegen. Eine Möglichkeit, Ihr individuelles Datum erstellen könnte mit NSDateFormatter

let stringDate = "2016-05-23 17:29:50 +0000" 
let formatter = NSDateFormatter() 
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z" 
let myDate = formatter.dateFromString(stringDate) 


func saveLocalNotification(myDate : NSDate){ 

    let localNotification = UILocalNotification() 
    localNotification.fireDate = myDate 
    ... 
    UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 
} 

Um zu wissen, wie die Wochentag, um Sie zu dieser Antwort Get day of week using NSDate swift

+0

gut ich weiß, über 'fireDate' einen Blick darauf werfen können, und ich möchte Benachrichtigung an bestimmten Wochentag "Montag, Dienstag, usw." nicht an einem bestimmten Datum auslösen – User

+0

Dann müssen Sie herausfinden, welches Datum dem Wochentag entspricht und die Benachrichtigung für dieses Datum planen. –