Ios UILocalNotification可在特定日期重复触发
我正在开发闹钟应用程序,我想做重复的闹钟功能,就像在iOS闹钟应用程序一样,我们可以选择重复选项,如每周一,每周二,。。。同样地 示例:如果仅选择“每周一”、“每周三”和“每周一” 接下来的星期一、星期三和星期五 应发出相应的警报通知 我试过:Ios UILocalNotification可在特定日期重复触发,ios,uilocalnotification,repeatingalarm,Ios,Uilocalnotification,Repeatingalarm,我正在开发闹钟应用程序,我想做重复的闹钟功能,就像在iOS闹钟应用程序一样,我们可以选择重复选项,如每周一,每周二,。。。同样地 示例:如果仅选择“每周一”、“每周三”和“每周一” 接下来的星期一、星期三和星期五 应发出相应的警报通知 我试过: NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *componentsForFireDate = [calendar components:(NSCale
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *componentsForFireDate = [calendar components:(NSCalendarUnitYear | NSCalendarUnitWeekOfYear | NSCalendarUnitHour | NSCalendarUnitMinute| NSCalendarUnitSecond | NSCalendarUnitWeekday) fromDate: [dictionaryForAlarm objectForKey:kAlarmSnoozeDate]];
NSArray *arrayForRepeatDays = @[@"2",@"4",@"6"];
for (NSString *dayOfWeek in arrayForRepeatDays) {
[componentsForFireDate setDay:[dayOfWeek integerValue]];
localNotification.repeatInterval = NSCalendarUnitWeekOfMonth;;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}
但这两天都没有着火,请纠正我
非常感谢你 我认为您需要这样编写代码:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *componentsForFireDate = [calendar components:(NSCalendarUnitYear | NSCalendarUnitWeekOfYear | NSCalendarUnitHour | NSCalendarUnitMinute| NSCalendarUnitSecond | NSCalendarUnitWeekday) fromDate: [dictionaryForAlarm objectForKey:kAlarmSnoozeDate]];
NSArray *arrayForRepeatDays = @[@"2",@"4",@"6"];
for (NSString *dayOfWeek in arrayForRepeatDays) {
[componentsForFireDate setWeekday: [dayOfWeek integerValue]]
[componentsForFireDate setHour: 10] ; // here you can set hr as per you need
localNotification.repeatInterval = NSWeekCalendarUnit;
localNotification.fireDate=[calendar dateFromComponents:componentsForFireDate];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}
我想这两个是让这一切顺利的原因:
[componentsForFireDate setWeekday: [dayOfWeek integerValue]]
localNotification.repeatInterval = NSWeekCalendarUnit;
NSCalendarUnitWeekOfMonth自NSWeekCalendarUnit仍未发出通知以来已使用NSCalendarUnitWeekOfMonth,而且在我保存它时,立即触发3个通知(因为今天保留为星期五、星期一和星期三已过)如何处理这个问题?检查我更新的答案我想你忘记设置FireDate了setHour的确切含义是什么?它指的是那天的时间,例如你设置的星期一,但在星期一哪个时间???那场火灾??所以,对于设置一天的时间,我们使用hr,min,secsure,我会试试这个