我正在制作使用UILocalNotification的应用。我想知道如何在UILocalNotification中留出空白,即我如何安排4周的警报(每天重复或每隔一天重复一次),关闭1周,再关闭4周,关闭1周等等。这只是一个案例。这些差距是动态的,并在运行时决定。
答案 0 :(得分:0)
由于您需要特殊的重复方案,因此无法使用repeatInterval
。我想你必须为你想拥有的每一天安排本地通知:
一些可能有用的代码:
/**
This method will schedule 28 notifications, each 24 hours exactly for 4 weeks,
starting from dayOne (first notification will be at dayOne, the second one
at dayOne + 24 hours..., so be sure to choose the hour you want by setting
dayOne correctly.
*/
- (void)scheduleLocalNotificationsEachDayFor4WeeksStartingFrom:(NSDate *)dayOne {
// Schedule notifications for each day during 4 weeks starting at dayOne
NSMutableArray *notifications = [NSMutableArray array];
for (int i = 0; i < 28; i++) {
[notifications addObject:notificationForDay(dayOne, i)];
}
for (UILocalNotification *notification in notifications) {
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}
}
UILocalNotification *notificationInSomeDays(NSDate *referenceDate, NSUInteger some) {
UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease];
// Notification timing
NSUInteger days = 60*60*24; // number of seconds in a day
notification.fireDate = [referenceDate dateByAddingTimeInterval:some * days];
notification.timeZone = [NSTimeZone localTimeZone]; // use local time zone if your reference date is a local one, or choose the appropriate time zone
// define your notification content...
return notification;
}
您可以使用scheduleLocalNotificationsEachDayFor4WeeksStartingFrom:
方法安排每周4周所需的28个通知。因此,您现在可以根据需要经常调用它,并在每个4周的第一天调用它,以便开始通知。
当您启动应用时,您应该清除所有当前的本地通知并重新安排它们以符合您的要求。特别是,如果应用程序在应运行通知的4周时间内启动,则必须进行调整。在这种情况下,您必须调整建议的scheduleLocalNotificationsEachDayFor4WeeksStartingFrom
方法以减少预定通知的数量......
答案 1 :(得分:0)
她的意思是说这些gaos是动态的....所以如果她在前4周设置28通知,在第二期设置28通知等等......那么每个应用程序将跨越64个本地通知.. .....这些差距是动态的意味着它可以是任何假设12周/ 1周休息.....然后通过你的方法她必须设置84通知单一药物(交叉限制),他们肯定不止一种这类药......