我有一个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).
要正确设置从星期一到星期五的通知,这里有一些框架代码.你必须执行它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;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。