В моем приложении iam с использованием UILocalNotifications.Но мое требование - я хочу отменить дублирующее уведомление.Как избежать дублирования UILocalNotification в ios?
Вот мой код .....
-(void)LocalNotificationMethod{
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
// Get the current date
NSDate *pickerDate = self.selectedDate;
NSLog(@" self.selectedDate %@", self.selectedDate);
// Break the date up into components
NSDateComponents *dateComponents = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)
fromDate:pickerDate];
NSDateComponents *timeComponents = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit)
fromDate:pickerDate];
// Set up the fire time
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setDay:[dateComponents day]];
[dateComps setMonth:[dateComponents month]];
[dateComps setYear:[dateComponents year]];
[dateComps setHour:[timeComponents hour]];
// Notification will fire in one minute
[dateComps setMinute:[timeComponents minute]];
[dateComps setSecond:[timeComponents second]];
NSDate *itemDate = [calendar dateFromComponents:dateComps];
NSLog(@"itemDate %@",itemDate);
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
return;
localNotif.fireDate = itemDate;
NSLog(@"itemDate %@", localNotif.fireDate);
localNotif.timeZone = [NSTimeZone defaultTimeZone];
// Notification details
localNotif.alertBody = [_titleTextFieldObj text];
// Set the action button
localNotif.alertAction = @"View";
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber =[[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
NSLog(@" localNotif.applicationIconBadgeNumber ++ %ld", (long)localNotif.applicationIconBadgeNumber);
// Specify custom data for the notification
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:[_titleTextFieldObj text] forKey:@"someKey"];
localNotif.userInfo = infoDict;
NSArray *notificationArray = [[UIApplication sharedApplication] scheduledLocalNotifications];
//UILocalNotification *notif = [notificationArray objectAtIndex:indexPath.row];
NSLog(@"notif %@",notificationArray);
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
}
Я новичок в Objective-C не знаю куда писать код, чтобы не позволить дублировать notifications.Can кто-нибудь пожалуйста, помогите мне решить это.
Заранее спасибо ..
Что о том, когда вы установили интервал повторения уведомлений, чтобы повторять каждый час или каждый день/и т. д. ?? Это покажет одно и то же уведомление снова и снова, что является ХОРОШИМ .... но .... есть ли способ автоматически удалять/отклонять старые уведомления при публикации нового повтора? – Supertecnoboff
Я никогда не использовал это, но не мог ли вы просто удалить старые повторяющиеся уведомления и создать новый? Возможно, вы могли бы отменить уведомление, затем изменить одно и то же уведомление и снова запланировать тот же объект уведомления, который теперь изменил значения. –
Я вижу, что вы говорите, но это, если приложение работает. Как насчет того, когда пользователь устанавливает уведомление для повторения и затем закрывает приложение? Затем уведомление продолжает повторяться (это то, что я хочу), но центр уведомлений заканчивается длинным списком повторяющихся уведомлений. Должен быть способ автоматического удаления повторяющихся уведомлений (и просто сохранить последний). – Supertecnoboff