2012-01-17 12 views
0

私は時間ベースリマインダーアプリケーションで作業しています。ユーザがリマインダを入力し、リマインダの時間を入力する。問題は、現在の時刻とユーザー定義の時刻を連続的に比較する方法です。どんなサンプルコードでも大いに役立ちます。なぜなら、私はこの点に立ち往生しているからです。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の設定にしてくださいApple Developer Documentation

- (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 


} 

詳細:アプリの実行時(あなたが通知されるようにしたい場合でも、アプリケーションがフォアグラウンドです)。

2

NSLocalNotificationは、カレンダーイベントとよく似た指定時間に設定できます。また、ユーザのカレンダーにカレンダーイベントを追加することもできます。EKEventKit

チュートリアルlocal notifications

チュートリアルevent kitです。

関連する問題