UILocalNotification repeatInterval

时间:2011-09-08 23:08:02

标签: objective-c uilocalnotification

我有2个问题。

  1. 如果我理解本地通知,则重复间隔允许我安排一次通知,并在每周,每月或每周的同一时间间隔内重复。我试图在星期二进行一次重复间隔,并且每周它将在同一天即星期二再次开火。这应该每周进行,而无需安排另一个通知。那是对的吗。是不是发生了。我要么在代码中做错了,要么我测试错了。

  2. 在模拟器中,我运行app安排通知。我看到了通知。然后我退出应用程序并在未来的同一天将系统日期设置为1周,但没有通知,因此我可以通过更改计算机系统时钟以这种方式测试此通知。我不想每个测试都要等一个星期。

  3. 这是代码

    - (void) scheduleNotificationWithItem:(NSDate *)date interval:(int)frequency {
     UILocalNotification *localNotif = [[UILocalNotification alloc]init];
    
     if (localNotif == nil) {
          return;
     }
    
     localNotif.fireDate = [date addTimeInterval:frequency];
     localNotif.timeZone = [NSTimeZone defaultTimeZone];
     localNotif.repeatCalendar = [NSCalendar currentCalendar];
     localNotif.repeatInterval = kCFCalendarUnitWeekday;
     localNotif.applicationIconBadgeNumber = 1;
     localNotif.alertBody = [NSString stringWithFormat:NSLocalizedString(@"%@.",nil),@"Weekly Reminder"];
     localNotif.alertAction = NSLocalizedString(@"View Notification Details", nil);
     localNotif.soundName = UILocalNotificationDefaultSoundName;
    
     [[UIApplication sharedApplication]scheduleLocalNotification:localNotif];
    
     [localNotif release];
    }
    

    请帮助这让我发疯。 谢谢, 迪安

1 个答案:

答案 0 :(得分:6)

1)将重复间隔设置为'NSWeekCalendarUnit'应该可以解决问题。它在与原始通知相同的日期和时间每周重复一次。

2)我没有在模拟器中测试过,但更改实际iPhone上的时钟会触发未来的警报。

相关问题