Viewcontroller:Objective-C: UILocalNotification
- (void)viewDidLoad
{
`[super viewDidLoad];`
dateFormatter.dateFormat = @"dd/MM";
timeFormatter.dateFormat = @"HH:mm";
NSString *dateString = [dateFormatter stringFromDate:dateTime];
NSString *timeString = [timeFormatter stringFromDate:dateTime];
if ([dateString isEqual:@"23/06"]) {
if ([timeString isEqual:@"23:30"]) {
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = dateTime;
localNotification.alertBody = [NSString stringWithFormat:@"It's 11:30 PM 23th June!"];
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}
}
}
AppDelegate:
[[UIApplication sharedApplication] scheduledLocalNotifications];
if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge| UIUserNotificationTypeSound categories:nil]];
}
Die Meldung wird nicht mit, wenn die Zeit-String und das Datum entspricht. Bitte helfen!
Wie wird 'dateTime' eingestellt? –
NSDate * DatumZeit; NSDateFormatter * DatumFormatter; NSDateFormatter * timeFormatter; \ n Nach der Implementierung –
Hmmm, also wird 'dateTime' nie gesetzt? Oder setzen Sie es auf das aktuelle Datum mit 'dateTime = [NSDate date];'? Wenn Sie es nicht eingestellt haben, dann wäre das das Problem. Wenn Sie haben, dann der Grund, warum ich frage, wie es gesetzt wird, ist, weil Sie es in eine Zeichenfolge zum Vergleichen konvertieren, die ein Problem mit Gebietsschema sein könnte. –