Как мне создать UILocalNotification, которое уведомляет каждые две минуты - PullRequest
6 голосов
/ 01 августа 2011

Так что я в основном пытаюсь установить приложение, которое постоянно выдает локальные уведомления.

Пока у меня есть:

- (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 Ответ

2 голосов
/ 01 августа 2011

Вы можете использовать определенные календарные единицы в NSCalendarUnit , когда вы устанавливаете свойство repeatInterval для UILocalNotification. Вы не можете использовать пользовательские единицы или манипулировать ими, поэтому не сможете делать то, что хотите, используя свойство интервала повторения уведомления.

Чтобы планировать уведомления каждые 2 минуты, вы, скорее всего, захотите запланировать несколько уведомлений в разное время (с интервалом 2 минуты). Вы можете создать UILocalNotification, а затем запланировать его с помощью:

[[UIApplication sharedApplication] scheduleLocalNotification: localNotification];

затем измените свойство fireDate (добавив интервал повторения), а затем запланируйте его снова с тем же кодом. Вы можете повторить это в цикле, однако много раз вам нужно повторить уведомление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...