我想运行UILocalNotifications并每2分钟重复一次。为此我做了:
std::cout << var
它只运行一次,之后却没有。
我认为这是因为这一行:
let reminderNote: UILocalNotification = UILocalNotification()
reminderNote.fireDate = NSDate(timeIntervalSinceNow: 60 * 2)
reminderNote.repeatInterval = NSCalendarUnit.Hour
reminderNote.alertBody = "some text"
reminderNote.alertAction = "View"
UIApplication.sharedApplication().scheduleLocalNotification(reminderNote)
如何每1.5或2小时重复一次通知?
答案 0 :(得分:1)
直接你不能。
不幸的是repeatInterval
只能设置为TimeUnit
,例如Hour
,Minute
,Second
等。
例如:假设您希望每2分钟重复一次通知,则需要创建30个每小时重复一次的通知。
答案 1 :(得分:0)
firedate设置通知第一次触发的时间,repeatInterval是通知重复之间的间隔。
不幸的是,您只能安排通知以NSCalendar常量定义的确切时间间隔重复:例如,每分钟,每小时,每天,每月,但不是这些间隔的倍数。
幸运的是,要每2分钟收到一次通知,你可以安排29个通知:一个是现在,一个是2分钟,后一个是2分钟,一个是你的29个通知时间表,并且全部重复每隔一小时。像这样: 因此,问题中的代码会安排从现在起每2分钟(60 * 2秒)触发一次通知,然后每小时重复一次。
UILocalNotification *reminderNote = [[UILocalNotification alloc]init];
reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:60 * 2];
reminderNote.repeatInterval = NSHourCalendarUnit;
reminderNote.alertBody = @"some text";
reminderNote.alertAction = @"View";
reminderNote.soundName = @"sound.aif";
[[UIApplication sharedApplication] scheduleLocalNotification:reminderNote];
reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:60 * 60];
[[UIApplication sharedApplication] scheduleLocalNotification:reminderNote];
2小时后,您现在设置通知,从现在开始2小时后,从前一个小时开始2小时到11个通知(12 * 2小时)= 24 - 2小时(因为第一个将在当天更改)= 22/2 =需要通过NSDayCalendarUnit在一天的重复间隔设置11个通知。