3

When I log the description of the local notification

`<UIConcreteLocalNotification: 0x1edd4d40>{fire date = Thursday, September 26, 2013, 11:15:00 AM India Standard Time, time zone = Asia/Kolkata (GMT+05:30) offset 19800, repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, September 26, 2013, 11:15:00 AM India Standard Time, user info = {
    UID = "38BF41F8-05D3-48E2-A20F-7B84609F4E85";
}}`

And I found "repeat count" parameter. Is there any option to set the repeat count such that it will repeat for this no of count and expired

4

3 に答える 3

0

この目的のために繰り返し回数を設定することはできませんでした。ただし、代わりに、通知を受け取った後に必要なチェックを行って fireDate を変更し、再度スケジュールすることができます。

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification    {

    localNotif = notification;

    int no_of_days = [self getNumberOfDaysToNextAlarmInDays];
    int day = 24*60*60;
    NSTimeInterval interval = day *no_of_days;
    localNotif.fireDate = [NSDate dateWithTimeInterval:interval sinceDate:[NSDate date]];
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

}



-(int)getNumberOfDaysToNextAlarmInDays {

    //do the necessary calculations here

    return count ;
}

ここでの小さな問題は、didReceiveLocalNotification が呼び出されたときにのみ機能することです。

于 2013-09-26T06:26:51.727 に答える
0

繰り返し回数を数値で指定できます。メソッドで発生した通知Appdelegate didReceiveLocalNotificationが呼び出されると。そのメソッドでは、繰り返し回数を取得できます。そこで、繰り返し回数を減らして、通知のスケジュールを変更できます。繰り返し回数が 0 の場合は、再スケジュールする必要はありませんnotification

例えば:

if ([[notification.userInfo objectForKey:@"repeat"]intValue] != 0) {
   //You can again schedule your notification here with decrementing the repeat count.
}else{

}
//Here you can cancel the current notification
[[UIApplication sharedApplication]cancelLocalNotification:notification];

お役に立てれば :)

于 2013-09-26T06:30:58.797 に答える
0

この質問では、考えられる回避策が尋ねられました。ローカル通知の繰り返しの単一発生のキャンセル

しかし、これが示唆するように、繰り返し回数によって区別される繰り返しローカル通知を持つことは可能だとは思いません。

于 2013-09-26T06:20:07.813 に答える