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 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...