我正在处理一个应用程序,在该应用程序中,我希望显示UILocalNotification的间隔不一致。通知将显示在用户想要查看的星期几,即用户选择星期一,星期二和星期五,然后通知将在每个即将到来的一周的这些天显示。
感谢您提前提供任何帮助。
答案 0 :(得分:0)
UILocalNotification
的{{1}}属性需要NSDate
。为什么不根据用户通过UI的反馈创建fireDate
实例并使用它?
要创建NSDate
对象,您可以使用秒数来调用NSDate
。例如,要创建表示从现在起6天和5小时的时间的initWithTimeIntervalsSinceNow:
:
NSDate
或者,如果您需要考虑用户的特定日历(请记住世界各地正在使用许多不同的日历)或时区,您还应该查看NSCalendar
和NSTimeZone
类。 'Date and Time Programming Guide'是一个很好的演练。
答案 1 :(得分:0)
我认为您需要做的是为您的间隔中的不规则时段安排多个UILocalNotification
实例。您可以使用repeatInterval
属性重复每个UILocalNotification
。
对于您的示例,您可以在星期一,星期二和星期五安排三个UILocalNotification
个实例,然后将每个实例的repeatInterval
值设置为NSWeekCalendarUnit
。
答案 2 :(得分:0)
穿上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];
}