为不一致的间隔iOS安排通知

为不一致的间隔iOS安排通知,ios,scheduling,uilocalnotification,Ios,Scheduling,Uilocalnotification,我正在处理一个应用程序,在该应用程序中,我希望为不一致的间隔显示UILocalNotification。通知将在用户希望查看的一周中的某一天出现,即用户选择星期一、星期二和星期五,然后通知将在接下来的每一周的这几天可见 感谢您提前提供的帮助。AUILocalNotification为其fireDate属性获取NSDate。为什么不根据用户通过UI的反馈创建一个NSDate实例并使用它呢 要创建NSDate对象,您可以简单地使用秒的倍数调用initWithTimeIntervalsIncNow:。

我正在处理一个应用程序,在该应用程序中,我希望为不一致的间隔显示UILocalNotification。通知将在用户希望查看的一周中的某一天出现,即用户选择星期一、星期二和星期五,然后通知将在接下来的每一周的这几天可见


感谢您提前提供的帮助。

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