2013-10-11 4 views
2

У меня есть расписание UILocalNotification в моей заявке в 10:00 каждый день.Как планировать UILocalNotification в каждый день или каждый третий день?

Я использовал следующий код для этого

NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar] ; 

NSDateComponents *componentsForReferenceDate = 

[calendar components:(NSDayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit) fromDate:[NSDate date]]; 

[componentsForReferenceDate setDay:10] ; 
[componentsForReferenceDate setMonth:10] ; 
[componentsForReferenceDate setYear:2013] ; 

NSDate *referenceDate = [calendar dateFromComponents:componentsForReferenceDate] ; 

// set components for time 10:00 a.m. 

NSDateComponents *componentsForFireDate = 

[calendar components:(NSYearCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit| NSSecondCalendarUnit) fromDate: referenceDate]; 

[componentsForFireDate setHour:10] ; 
[componentsForFireDate setMinute:0] ; 
[componentsForFireDate setSecond:0] ; 

NSDate *fireDateOfNotification = [calendar dateFromComponents: componentsForFireDate]; 

// Create the notification 

UILocalNotification *notification = [[UILocalNotification alloc] init] ; 

notification.fireDate = fireDateOfNotification ; 
notification.timeZone = [NSTimeZone localTimeZone] ; 
notification.alertBody = [NSString stringWithFormat: @"Good Morning! Have a great day!"] ; 
notification.alertAction = @"go back"; 
notification.userInfo= [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Some information"] forKey:@"information"]; 
notification.repeatInterval = NSDayCalendarUnit ; 
notification.soundName = UILocalNotificationDefaultSoundName; 
notification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1; 
[[UIApplication sharedApplication] scheduleLocalNotification:notification] ; 

Это работает очень хорошо. , но сейчас я хочу запланировать UILocalNotification в каждый день и каждый третий день. так как это сделать?

+0

проверить это http://stackoverflow.com/questions/18014438/repeating-a-local-notification-after-every-14-daystwo-weeks – Bharat

ответ

0

Вы не можете сделать это просто с repeatInterval, так как доступны только the following интервалов.

Одним из решений, о которых я могу думать, было бы установить отдельные уведомления за каждый день (без repeatInterval). Но, делая это таким образом, вы можете наткнуться на 64 предела уведомлений.

2

Вы не можете выполнить настройку repeatTimeInterval из UILocalNotification .. есть много вопросов, как и у вас, а также несколько дней назад у меня был такой же вопрос, но я не могу найти какое-либо решение, поэтому, пожалуйста, лучше прекратите борьбу с ним.

Вы должны должны использовать интервал повторения времени от

Календарь единиц Укажите календарные единицы, такие как день и месяц.

enum { 
    NSEraCalendarUnit = kCFCalendarUnitEra, 
    NSYearCalendarUnit = kCFCalendarUnitYear, 
    NSMonthCalendarUnit = kCFCalendarUnitMonth, 
    NSDayCalendarUnit = kCFCalendarUnitDay, 
    NSHourCalendarUnit = kCFCalendarUnitHour, 
    NSMinuteCalendarUnit = kCFCalendarUnitMinute, 
    NSSecondCalendarUnit = kCFCalendarUnitSecond, 
    NSWeekCalendarUnit = kCFCalendarUnitWeek, 
    NSWeekdayCalendarUnit = kCFCalendarUnitWeekday, 
    NSWeekdayOrdinalCalendarUnit = kCFCalendarUnitWeekdayOrdinal, 
    NSQuarterCalendarUnit = kCFCalendarUnitQuarter, 
    NSWeekOfMonthCalendarUnit = kCFCalendarUnitWeekOfMonth, 
    NSWeekOfYearCalendarUnit = kCFCalendarUnitWeekOfYear, 
    NSYearForWeekOfYearCalendarUnit = kCFCalendarUnitYearForWeekOfYear 
    NSCalendarCalendarUnit = (1 << 20), 
    NSTimeZoneCalendarUnit = (1 << 21), 
}; 
typedef NSUInteger NSCalendarUnit; 

Выше вы можете найти документацию от Apple. также прочитать этот вопрос ...

How to set Local Notification repeat interval to custom time interval?

Для получения дополнительной информации, вы только по расписанию локального оповещения максимального , поэтому будьте осторожны, если может быть вы строгания в возражаете, что вы хотите создать несколько уведомлений для пользовательских интервалов времени повторения.

Смежные вопросы