好的,所以我看到几篇帖子说你不能设置UILocalNotification
重复任何多于或少于几个给定选项(每分钟/小时/日/周/月等)。
但是,这些帖子都没有解决将repeatInterval
UILocalNotification
NSWeekdayCalendarUnit
属性设置为NSWeekdayCalendarUnit
的问题。
我对所有这些NSDate和NSCalendar的东西都很新,所以我确定我遗漏了一些东西,但我已经阅读了文档,听起来你可以使用NSLocalNotification
来制作一个{{ 1}}重复说,如果NSWeekdayCalendarUnit
设置为2,3,5,则每周一,周二和周四。
NSWeekdayCalendarUnit 指定工作日单位。 对应的值是int。等于kCFCalendarUnitWeekday。工作日单位是数字1到N(公历中N = 7,1表示星期日)。
这不正确吗?
提前致谢。
答案 0 :(得分:1)
是的,你可以。我是这样做的。用户可以选择带有选择器的方案。然后选择以下方法:
- (void)setOneLocalAlarmNotification: (NSDate *)firstFireDate withRepeat: (NSInteger)repeat {
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
return;
localNotif.fireDate = firstFireDate;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.repeatCalendar = [NSCalendar currentCalendar];
switch(repeat) {
case 0:
break ;
case 1:
localNotif.repeatInterval = kCFCalendarUnitDay;
break;
case 2:
localNotif.repeatInterval = kCFCalendarUnitWeekday;
break;
default:
break;
}
// Notification details
localNotif.alertBody = @"Message?";
// Set the action button
localNotif.alertAction = @"Yes";
localNotif.soundName = @"glas.caf"; //UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 1;
// Specify custom data for the notification
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"Alarm" forKey:@"type"];
localNotif.userInfo = infoDict;
// Schedule the notification
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
[localNotif release]
}