如何创建每两分钟通知一次的UILocalNotification

时间:2011-08-01 07:00:00

标签: iphone ipad

所以我基本上试图设置一个不断提供本地通知的应用程序。

到目前为止,我有:

- (void)scheduleNotification {

    [reminderText resignFirstResponder];
    [[UIApplication sharedApplication] cancelAllLocalNotifications];

    Class cls = NSClassFromString(@"UILocalNotification");
    if (cls != nil) {

        UILocalNotification *notif = [[cls alloc] init];
        notif.fireDate = [datePicker date];
        notif.timeZone = [NSTimeZone defaultTimeZone];

        notif.alertBody = @"Your building is ready!";
        notif.alertAction = @"View";
        notif.soundName = UILocalNotificationDefaultSoundName;
        notif.applicationIconBadgeNumber = 1;

        NSInteger index = [scheduleControl selectedSegmentIndex];
        switch (index) {
            case 1:
                notif.repeatInterval = NSMinuteCalendarUnit;
                break;
            case 2:
                notif.repeatInterval = NSMinuteCalendarUnit*2;
                break;
            default:
                notif.repeatInterval = 0;
                break;
        }

        NSDictionary *userDict = [NSDictionary dictionaryWithObject:reminderText.text
                                                forKey:kRemindMeNotificationDataKey];
        notif.userInfo = userDict;

        [[UIApplication sharedApplication] scheduleLocalNotification:notif];
        [notif release];
    }
}

我正在尝试这样做,这样我就可以每隔2分钟(当我设置案例2时)和每1分钟(当我设置案例1时)收到通知。唯一的问题是...... * 2无法使其每2分钟得到通知。如何制作它以便每2分钟通知一次?

1 个答案:

答案 0 :(得分:2)

在设置UILocalNotification的repeatInterval属性时,您只能在 NSCalendarUnit 中使用已定义的日历单位。您无法使用自定义单位或操纵单位,因此您无法使用通知的重复间隔属性执行所需操作。

要每2分钟安排一次通知,您很可能希望在不同时间(相隔2分钟)安排多个通知。您可以创建UILocalNotification,然后使用以下命令安排它:

[[UIApplication sharedApplication] scheduleLocalNotification: localNotification];

然后修改fireDate属性(通过添加重复间隔),然后使用相同的代码再次安排它。您可以循环重复此操作,但需要多次重复通知。