2
    - (void)scheduleNotification :(int) rowNo
{

    [[UIApplication sharedApplication] cancelAllLocalNotifications];

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

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

        NSString *descriptionBody=[[remedyArray objectAtIndex:rowNo]objectForKey:@"RemedyTxtDic"];

        NSLog(@"%@",descriptionBody);

        notif.alertBody = [NSString stringWithString:descriptionBody];
        notif.alertAction = @"Show me";
        notif.soundName = UILocalNotificationDefaultSoundName;
        notif.applicationIconBadgeNumber = 1;


        NSDictionary *userDict = [NSDictionary dictionaryWithObject:notif.alertBody
                                                             forKey:@"kRemindMeNotificationDataKey"];
        notif.userInfo = userDict;

        [[UIApplication sharedApplication] scheduleLocalNotification:notif];

    }
}

Sqldbからフェッチされた列名の頻度があり、特定のセルに対して通知が表示される回数が含まれています。頻度=3の場合、通知は午前8時、午後2時、午後8時と表示されます。頻度= 4の場合、通知は午前8時、午後12時、午後4時、午後8時と表示されます。

それを行う方法はありますか?誰かが私を助けることができればそれは素晴らしいことです

4

1 に答える 1

2

残念ながら、タイプNSCalendarUnit(日、週、月)のrepeatIntervalの値のみを指定できます。したがって、fireDateが異なる複数の通知を作成し、それらにrepeatInterval =NSDayCalendarUnitを指定する必要があると思います。たとえば、

NSDate *currentTime = [NSDate date];
notification1.fireDate = [NSDate dateWithTimeInterval:SOME_INTERVAL sinceDate:currentTime];
notification1.repeatInterval = NSDayCalendarUnit;

notification2.fireDate = [NSDate dateWithTimeInterval:SOME_INTERVAL * 2 sinceDate:currentTime];
notification2.repeatInterval = NSDayCalendarUnit;

ユーザーが通知の一部を表示した後-通知をキャンセルできます。

アップデート。

次のようなさまざまなコンポーネントからNSDateを作成することもできます。

NSDateComponents *components = [[NSDateComponents alloc] init];
[components setWeekday:2]; // Monday
[components setWeekdayOrdinal:1]; // The first Monday in the month
[components setMonth:5]; // May
[components setYear:2013];
NSCalendar *gregorian = [[NSCalendar alloc]
                     initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:components];

また、時間、分、秒、タイムゾーン、その他のパラメータを設定できます。

于 2013-01-22T13:35:28.363 に答える