2017-01-05 5 views
0

Ich versuche, jeden Montag eine lokale Benachrichtigungen zu senden. Nehmen wir an, ich habe ein Szenario, in dem ich jeden Montag einen Monat lang ein Medikament verschicken muss. Also wird es insgesamt 4 Benachrichtigungen in einem Monat geben. Mein Code ist wie folgt, aber ich kann die folgenden Dinge nicht herausfinden; 1) So senden Sie die Benachrichtigungen an einem bestimmten Tag 2) Wie Sie die Benachrichtigung für ein maximales Enddatum begrenzen.Lokale Benachrichtigungen nur am Montag

Der Code zum Senden der Benachrichtigung lautet wie folgt;

let notification = UILocalNotification() 
        notification.alertBody = "Take Medication"      notification.alertAction = "open" // text that is displayed after "slide to..." on the lock screen - defaults to "slide to view" 
        notification.fireDate = NSDate() 
        notification.userInfo = ["title": "notification app", "UUID": "Some Unique Guid"] 
UIApplication.sharedApplication().scheduleLocalNotification(notification) 

Kann jemand bitte helfen? Grüße, neena

+1

Sie werden wahrscheinlich mehrere Benachrichtigungen, eine für jeden bestimmten Datum, das Sie wollen planen möchten. – Paulw11

+0

Korrigieren Sie ein beliebiges Datum, das am Montag kam, und stellen Sie dann das Zeitintervall auf wöchentlich ein. notification.repeatInterval = NSWeekCalendarUnit; –

Antwort

0

die NSWeekCalendarUnit zu NSDateComponents hinzufügen und die repeatInterval zu NSWeekCalendarUnit gesetzt. Beispiel:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDate *now = [NSDate date]; 
NSDateComponents *componentsForFireDate = [calendar components:(NSYearCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit| NSSecondCalendarUnit | NSWeekdayCalendarUnit) fromDate: now]; 
[componentsForFireDate setWeekday: 2] ; // Monday 
[componentsForFireDate setHour: 18] ; // 4PM 
[componentsForFireDate setMinute:0] ; 
[componentsForFireDate setSecond:0] ; 

    //... 
    notification.repeatInterval = NSWeekCalendarUnit; 
0

Sie können wie etwas verwalten,

var notification = UILocalNotification() 

    notification.fireDate! = fireDate // this should be monday with desired timr 


    notification.repeatInterval = NSWeekCalendarUnit //this will repeat every week 
+0

und wie würde ich diese Benachrichtigung nach einem Monat beenden? – neena

+0

UIApplication.shared.cancelLocalNotification (Benachrichtigung) – Lion

Verwandte Themen