Создание приложения для напоминания по времени в iPhone - PullRequest
0 голосов
/ 17 января 2012

Я работаю над приложением напоминаний на основе времени. в котором пользователь вводит свое напоминание и время для напоминания. Проблема в том, как постоянно сравнивать текущее время с заданным пользователем временем. Любой пример кода очень поможет. потому что я застрял в этой точке.

Ответы [ 2 ]

15 голосов
/ 17 января 2012

Сравнение текущего времени с заданным пользователем не является правильным шаблоном проектирования.

UIKit предлагает объект NSLocalNotification, который является более высокоуровневой абстракцией для вашей задачи.

Нижеэто фрагмент кода, который создает и планирует локальное уведомление в выбранное время:

    UILocalNotification *aNotification = [[UILocalNotification alloc] init];
    aNotification.fireDate = [NSDate date];
    aNotification.timeZone = [NSTimeZone defaultTimeZone];

    aNotification.alertBody = @"Notification triggered";
    aNotification.alertAction = @"Details";

    /* if you wish to pass additional parameters and arguments, you can fill an info dictionary and set it as userInfo property */
    //NSDictionary *infoDict = //fill it with a reference to an istance of NSDictionary;
    //aNotification.userInfo = infoDict;

    [[UIApplication sharedApplication] scheduleLocalNotification:aNotification];
    [aNotification release];

Кроме того, убедитесь, что ваш AppDelegate настроен так, чтобы он реагировал на локальные уведомления как при запуске, так и во время нормальной работы приложения.приложение (если вы хотите получать уведомления, даже если приложение находится на переднем плане):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    UILocalNotification *aNotification = [launchOptions objectForKey: UIApplicationLaunchOptionsLocalNotificationKey]; 

    if (aNotification) {
        //if we're here, than we have a local notification. Add the code to display it to the user
    }


    //...
    //your applicationDidFinishLaunchingWithOptions code goes here
    //...


        [self.window makeKeyAndVisible];
    return YES;
}



- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {

        //if we're here, than we have a local notification. Add the code to display it to the user


}

Подробнее в Документация для разработчиков Apple .

2 голосов
/ 17 января 2012

Почему бы не использовать NSLocalNotification, который вы можете установить на определенное время, очень похоже на событие календаря.В качестве альтернативы вы можете добавить события календаря в календарь пользователя с помощью EKEventKit

Учебник для локальных уведомлений .

Учебник для Комплект событий .

...