allererst von iOS 10, Apple hat von UILocalNotifications
veraltet und sie haben extrem erstaunlich Rahmen für reiche Benachrichtigungen UserNotifications
Rahmen genannt eingeführt. Daher empfehle ich Ihnen, dieses Framework zu verwenden, anstatt es zu verwerfen. This Post hat die Verwendung dieses Frameworks in einer sehr einfachen Art und Weise erklärt. Obwohl der Beitrag Swift
Codierung beschreibt, können Sie die Idee erhalten und in Objective-c
konvertieren oder Sie können auch this Tutorial folgen, die in swift
und objective-c
erläutert.
Es gibt verschiedene Arten von Benachrichtigungen Auslöser, die Sie verwenden können:
- UNTimeIntervalNotificationTrigger: Aktiviert die Benachrichtigung zu nach dem bestimmten Zeitintervall gesendet werden. Kann das Zeitintervall wiederholen, wenn erforderlich ist.
- UNCalendarNotificationTrigger: Benachrichtigt Benutzer mit Datumskomponenten z. Auslöser um 8 Uhr morgens. Es kann auch wiederholt werden.
- UNLocationNotificationTrigger: Fügt die Fähigkeit hinzu, auszulösen, wenn der Benutzer einen bestimmten Standort betritt oder verlässt.
In Ihrem Fall können Sie UNCalendarNotificationTrigger verwenden.
EDIT: Für Ihre Anforderung tun wie folgt aus:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekday) fromDate:[NSDate date]];
NSDateComponents *time = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:your_date];
components.hour = time.hour;
components.minute = time.minute - time_you_want_to_fire_notification_before; //ex. if you want to fire notification before 10 mins then -10 from time.minute
und diese Benachrichtigung Verwendung Feuer:
UNCalendarNotificationTrigger* trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:components repeats:YES];
Welche Version ios Sie verwenden ?? –
Ich benutze IOS 10.2 SDK –