Сравнение текущего времени с заданным пользователем не является правильным шаблоном проектирования.
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 .