我正在开发报警应用程序,我想做与iOS闹钟应用程序相同的重复报警功能,我们可以选择重复选项作为每周一,每周二,......同样。
示例:如果我只选择每周一,每周三和每个 星期五然后是所有即将到来的周一,周三和周五 应该触发相应的警报通知。
我试过了:
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];
}
但它在相应的日子里没有起火,为此纠正我
谢谢你的推荐!
答案 0 :(得分:0)
我认为你需要做这样的代码:
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;