2012-09-19 14 views
5

アラームをスケジュールするためにUILocalnotificationを使用するアラームクロックアプリを用意しました。アラームが設定された後、UISwitchを使用してオンとオフを切り替えることができます私が今考えているのは、アラームをオフに切り替えるときに、UILocalnotificationをキャンセルする前にDATEとTIMEの値を保存して、ユーザーが再びアラームIをオンにしたときに格納されているDATEおよびTIME値を使用して再スケジュールします。それは正しい方法ですか、それを行うための他の方法がありますか?アラームのオンとオフを切り替えるios

答えて

7

'日付'、 'isCanceled'フィールドと一意のID 'alarmId'カラムを持つデータベーステーブルを作成してください。ユーザは、より良いあなたが

UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 

if (localNotif == nil) 
    return; 

localNotif.fireDate = itemDate; 
localNotif.timeZone = [NSTimeZone defaultTimeZone]; 
localNotif.alertAction = NSLocalizedString(@"View Details", nil); 
localNotif.alertBody = title; 
localNotif.soundName = UILocalNotificationDefaultSoundName; 

NSDictionary *infoDict = [NSDictionary dictionaryWithObject:stringID forKey:@"ID"]; 
localNotif.userInfo = infoDict; 

[[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 
[localNotif release]; 
、してアラームを作成し、これを使用するには、この、

NSString *alarmId = @"some_id_to_cancel"; 
    UILocalNotification *notificationToCancel=nil;    
    for(UILocalNotification *aNotif in [[UIApplication sharedApplication] scheduledLocalNotifications]) { 
     if([aNotif.userInfo objectForKey:@"ID"] isEqualToString:alarmId]) { 
      notificationToCancel = aNotif; 
      break; 
     } 
    } 
    [[UIApplication sharedApplication] cancelLocalNotification:notificationToCancel]; 

を試みるアラームをキャンセルしたいとき

関連する問題