【发布时间】:2017-05-11 11:54:40
【问题描述】:
我有在特定日期触发的本地通知,例如下周一。我想要的是,每周一重复这个。如何做到这一点?我目前使用的代码:
if(SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(@"10.0")) {
/* Trigger date */
NSDate *date = [[NSDate date] mt_dateSecondsAfter:15];
NSDateComponents *triggerDate = [[NSCalendar currentCalendar]
components:NSCalendarUnitYear +
NSCalendarUnitMonth + NSCalendarUnitDay +
NSCalendarUnitHour + NSCalendarUnitMinute +
NSCalendarUnitSecond fromDate:date];
UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:triggerDate
repeats:NO];
/* Set notification */
UNMutableNotificationContent *content = [UNMutableNotificationContent new];
content.body = @"Время вставать с Ретро ФМ";
content.categoryIdentifier = NotificationCategoryIdent;
content.sound = [UNNotificationSound defaultSound];
NSString *identifier = @"LocalNotification";
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier
content:content
trigger:trigger];
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Something went wrong: %@",error);
}
}];
}
else {
// Code for old versions
UILocalNotification *notification = [[UILocalNotification alloc] init];
[notification setAlertBody:@"Время вставать с Ретро ФМ"];
[notification setCategory:NotificationCategoryIdent];
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];
}
【问题讨论】:
-
这段代码有什么问题?
-
只是重复:NO 到重复:YES
-
@Koen 它的工作,我希望每个星期一/月/日重复一次
-
您必须从日期组件每周设置一次
-
repeatInterval,NSCalendarUnitWeekday 会帮助你
标签: ios objective-c