gpt4 book ai didi

iphone - 在 UILocalNotification 中创建周间隔以及周期

转载 作者:行者123 更新时间:2023-12-03 18:48:01 26 4
gpt4 key购买 nike

我正在制作使用 UILocalNotification 的应用程序。我想知道如何在 UILocalNotification 中留出间隙,即如何安排闹钟 4 周(每天重复或每隔一天重复一次),然后关闭 1 周,再开启 4 周,关闭 1 周,依此类推。这只是一个个案。这些间隙是动态的并且在运行时决定。

最佳答案

您将无法使用repeatInterval,因为您需要特殊的重复方案。我认为您必须为您想要的每一天安排一个本地通知:

  • 前 4 周每天 28 条通知,
  • 第二个 4 周期间每天 28 条通知,
  • 等等...

一些可能有帮助的代码:

/**
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 方法以减少计划通知的数量...

关于iphone - 在 UILocalNotification 中创建周间隔以及周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8131588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com