为不一致的间隔iOS安排通知
我正在处理一个应用程序,在该应用程序中,我希望为不一致的间隔显示UILocalNotification。通知将在用户希望查看的一周中的某一天出现,即用户选择星期一、星期二和星期五,然后通知将在接下来的每一周的这几天可见为不一致的间隔iOS安排通知,ios,scheduling,uilocalnotification,Ios,Scheduling,Uilocalnotification,我正在处理一个应用程序,在该应用程序中,我希望为不一致的间隔显示UILocalNotification。通知将在用户希望查看的一周中的某一天出现,即用户选择星期一、星期二和星期五,然后通知将在接下来的每一周的这几天可见 感谢您提前提供的帮助。AUILocalNotification为其fireDate属性获取NSDate。为什么不根据用户通过UI的反馈创建一个NSDate实例并使用它呢 要创建NSDate对象,您可以简单地使用秒的倍数调用initWithTimeIntervalsIncNow:。
感谢您提前提供的帮助。A
UILocalNotification
为其fireDate
属性获取NSDate
。为什么不根据用户通过UI的反馈创建一个NSDate
实例并使用它呢
要创建NSDate
对象,您可以简单地使用秒的倍数调用initWithTimeIntervalsIncNow:
。例如,要创建表示从现在起6天5小时的时间的NSDate
:
NSDate* futureDate = [[NSDate alloc] initWithTimeIntervalSinceNow:6*24*60 + 5*60];
或者,如果您需要考虑用户的特定日历(请记住,世界各地有许多不同的日历)或时区,您还应该查看和类。这是一个很好的演练。我认为您需要做的是为间隔中的不规则时段安排多个实例。您可以使用该属性让每个
UILocalNotification
重复
例如,您可以在周一、周二和周五安排三个
UILocalNotification
实例,然后将每个实例的repeatInterval
值设置为。打开AppDelegate.m
并从enterbackground和terminal方法调用
-(void)localNotification{
UILocalNotification *scheduledAlert;
[[UIApplication sharedApplication] cancelAllLocalNotifications];
scheduledAlert = [[[UILocalNotification alloc] init] autorelease];
NSDate *date = [NSDate date];
NSLog(@"%@",date);
scheduledAlert.fireDate = [NSDate dateWithTimeIntervalSinceNow:86400];
scheduledAlert.timeZone = [NSTimeZone defaultTimeZone];
scheduledAlert.repeatInterval = NSDayCalendarUnit;
NSArray *arr =[[NSArray alloc]initWithObjects:@"Your Notification 1",@"Your Notification 2",@"Your Notification 3",nil];
int jk = arc4random()%arr.count;
scheduledAlert.alertBody = [arr objectAtIndex:jk];
[[UIApplication sharedApplication] scheduleLocalNotification:scheduledAlert];
}
你能帮我创建一个NSDate对象,其中包含这样的信息吗?我知道你的答案,但我认为这不是我想要的。让我再解释一遍。我想重复用户从一周中选择的任何一天的通知4 5,该通知将一次又一次出现,但如果我将此对象转换为本地通知,则该通知将只出现一次。如果您能为我想出任何其他方法,我将非常感谢:)好的,我想我误解了您的问题-我又提出了一个问题答复:)因此,您是说单本地通知实例是不可能的,但如果一周将扩展到一个月或一年呢?只要说别介意。它们应该是一种更好的方式。您可以将
repeatInterval
更改为NSYearCalendarUnit
?