2011-08-01 11 views
6

だから、私は基本的にはローカルの通知を常に提供するアプリを設定しようとしています。2分ごとに通知するUILocalNotificationを作成するにはどうすればいいですか?

これまでのところ、私が持っている:

- (void)scheduleNotification { 

    [reminderText resignFirstResponder]; 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 

    Class cls = NSClassFromString(@"UILocalNotification"); 
    if (cls != nil) { 

     UILocalNotification *notif = [[cls alloc] init]; 
     notif.fireDate = [datePicker date]; 
     notif.timeZone = [NSTimeZone defaultTimeZone]; 

     notif.alertBody = @"Your building is ready!"; 
     notif.alertAction = @"View"; 
     notif.soundName = UILocalNotificationDefaultSoundName; 
     notif.applicationIconBadgeNumber = 1; 

     NSInteger index = [scheduleControl selectedSegmentIndex]; 
     switch (index) { 
      case 1: 
       notif.repeatInterval = NSMinuteCalendarUnit; 
       break; 
      case 2: 
       notif.repeatInterval = NSMinuteCalendarUnit*2; 
       break; 
      default: 
       notif.repeatInterval = 0; 
       break; 
     } 

     NSDictionary *userDict = [NSDictionary dictionaryWithObject:reminderText.text 
               forKey:kRemindMeNotificationDataKey]; 
     notif.userInfo = userDict; 

     [[UIApplication sharedApplication] scheduleLocalNotification:notif]; 
     [notif release]; 
    } 
} 

私は(私はケース1を設定した場合)、それは私が通知(私はケース2を設定)2分ごとや1分毎に取得することができ作るしようとしています通知される。唯一の問題は... * 2は2分ごとに通知を出すように働いていません。 2分ごとに通知するように私はどうしたらいいですか?

答えて

2

UILocalNotificationのrepeatIntervalプロパティを設定する場合は、定義されたカレンダー単位をNSCalendarUnitにしか使用できません。カスタムユニットを使用したり、ユニットを操作することはできません。そのため、通知の繰り返し間隔プロパティを使用して必要な操作を行うことはできません。

2分ごとに通知をスケジュールするには、複数の通知を異なる時間(2分間隔)でスケジュールする必要があります。あなたはUILocalNotificationを作成し、その後でそれをスケジュールすることができます。そして、(あなたの繰り返し間隔を追加することによって)fireDateプロパティを変更

[[UIApplication sharedApplication] scheduleLocalNotification: localNotification]; 

、その後、同じコードで再びそれをスケジュールします。ループでこれを繰り返すことはできますが、何度も通知を繰り返す必要があります。

関連する問題