每周重复一次UILocalNotification

时间:2016-01-04 20:38:19

标签: ios objective-c uilocalnotification

如果我在1月4日星期一下午1:00安排通知,我希望它能够在星期一每周重复一次。根据这篇博客文章http://useyourloaf.com/blog/repeating-an-ios-local-notification.html,我认为NSWeekCalendarUnit可以很好地运行,但不适用于iOS 8+。文档说明替换它是NSCalendarUnitWeekOfMonthNSCalendarUnitWeekOfYear。如果我正确理解这一点,前者会在每个月的第一周重复通知,然后在每个月的第一周重复每年一次?或者我误解了什么?

localNotification.repeatInterval = NSWeekCalendarUnit; // Deprecated

1 个答案:

答案 0 :(得分:1)

您可以这样做:

for (int i = 0; i< dateArray.count; i++) {

    UILocalNotification *nextNotif = [yourOriginalNotifMonday mutableCopy];
    nextNotif.fireDate = [mondayDate dateByAddingTimeInterval:i*ONE_WEEK];

    // Schedule the notification
    [[UIApplication sharedApplication] scheduleLocalNotification:nextNotif];
}

测试你的代码:

NSDate *mondayDate = [[NSDate date] dateByAddingTimeInterval:5.0];
const int ONE_WEEK = 2;//2 seconds instead of 7*ONE_DAY;

立即将您的应用置于后台。