每周特定日期的本地通知

Posted

技术标签:

【中文标题】每周特定日期的本地通知【英文标题】:Local Notification every specific day of week 【发布时间】:2016-01-30 11:25:55 【问题描述】:

我需要为每周工作日(不是周六和周日)触发的特定时间(例如 18:00)创建本地通知,但我找不到示例或教程。我想与 swift2.1 一起使用。如何创建此通知?我的问题是正确定义通知的firedate

【问题讨论】:

你的意思是,你不能将objective-c代码转换成swift? 不,Fahri,我不知道如何为除周六或周日以外的每一天创建通知。我的问题是正确定义通知的firedate 【参考方案1】:

您可以使用NSDateComponents 为您的本地通知创建确切的日期。下面是示例,我们如何创建具有确切触发日期的本地通知:

NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitWeekOfYear|NSCalendarUnitWeekday fromDate:now];//get the required calendar units

if (components.weekday>2) 
    components.weekOfYear+=1;//if already passed monday, make it next monday

components.weekday = 2;//Monday
components.hour = 11;
NSDate *fireDate = [calendar dateFromComponents:components];

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = fireDate;
localNotification.alertBody = @"alert message";
localNotification.applicationIconBadgeNumber = 1;
localNotification.repeatInterval = NSCalendarUnitWeekOfYear;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

在这段代码中,我将触发日期设置为每周一上午 11 点,并使用本地通知的repeatInterval 将其设置为每周重复一次。代码可能是错误的,需要测试,但我想这给了你基本的想法,我也没有快速编码,所以它是客观的 c。希望这会有所帮助!

【讨论】:

以上是关于每周特定日期的本地通知的主要内容,如果未能解决你的问题,请参考以下文章

特定日期的本地通知

针对特定日期重复本地通知 iOS 10

ios重复本地通知

如果当前日期时间超过预定日期时间,如何删除本地通知?

如何在swift中设置每周本地通知

iOS 10:如何在特定日期触发后重复本地通知?