2012-01-17 4 views
0

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

+0

Вы можете воспользоваться помощью из потока http://stackoverflow.com/questions/949416/how-to-compare-two-dates-in-objective-c – Ali3n

+0

Я хочу, чтобы метод выполнялся непрерывно, будет ли это метод называется так же, как didupdatetolocation менеджера местоположения –

ответ

15

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

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 Developer Documentation.

2

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

Учебное пособие для local notifications.

Учебное пособие для event kit.

Смежные вопросы