每周特定日期的本地通知
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。希望这会有所帮助!
【讨论】:
以上是关于每周特定日期的本地通知的主要内容,如果未能解决你的问题,请参考以下文章