ios – UILocalNotification应该每个工作日重复,但周末也会发生

前端之家收集整理的这篇文章主要介绍了ios – UILocalNotification应该每个工作日重复,但周末也会发生前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个UILocalNotification,应该是一天一个星期一到星期五,但不是在周末.我认为将通知的repeatInterval属性设置到NSWeekdayCalendarUnit将会实现这一点.可悲的是,我的通知仍在周末开放.有人可以建议为什么吗这是我的代码
UILocalNotification *localNotification = [[UILocalNotification alloc] init];

localNotification.alertAction = @"View";
localNotification.alertBody = NSLocalizedString(@"ALERT_MESSAGE",nil);
localNotification.soundName = UILocalNotificationDefaultSoundName;

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM-dd-yyyy HH:mm"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"America/Toronto"]];

// Notification fire times are set by creating a notification whose fire date 
// is an arbitrary weekday at the correct time,and having it repeat every weekday
NSDate *fireDate = [dateFormatter dateFromString:@"01-04-2012 11:00"]; 

localNotification.fireDate = fireDate;
localNotification.repeatInterval = NSWeekdayCalendarUnit;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
            break;

[localNotification release];

解决方法

iOS中的平日就是一星期内的一天.它没有“工作周”的内涵,而不是周末.

文档说明它更清楚一点,建议您使用1-7作为单位:

NSWeekdayCalendarUnit

Specifies the weekday unit.

The corresponding value is an kcfCalendarUnitSecond. Equal to kcfCalendarUnitWeekday. The weekday units are the numbers 1 through N (where for the Gregorian calendar N=7 and 1 is Sunday).

资料来源:http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSCalendar_Class/Reference/NSCalendar.html

要正确设置从星期一到星期五的通知,这里有一些框架代码.你必须执行它5次,所以将其封装在一个fireDate参数的方法中是很好的.我已经展示了如何在星期一做到这一点.

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

// Set this to an NSDate that is for the time you want,on Monday
notification.fireDate = fireDate;            

// Repeat every week
notification.repeatInterval = NSWeekCalendarUnit;

猜你在找的iOS相关文章