0

目標日から 2 日前に通知を送信したい.現在、以下のコードを使用して通知を送信していますが、目標日から 2 日前に通知を送信する方法があります。

    NSString *frstdate = [[calenderarray objectAtIndex:k] objectForKey:@"date"];
    NSLog(@"frstdate..%@",frstdate);
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd"];
    NSDate *date = [dateFormat dateFromString:frstdate]; 
    NSLog(@"date..%@",date);
    NSDate *dateToFire = [[[NSDate alloc] initWithTimeInterval:-24*60*60 sinceDate:date]autorelease];
     NSLog(@"dateToFire..%@",dateToFire);
    UILocalNotification *localNotif = [[UILocalNotification alloc] init];
    if (localNotif == nil)
         return;
    localNotif.fireDate = itemDate;
    localNotif.alertAction = @"View";
    localNotif.soundName = UILocalNotificationDefaultSoundName;
     localNotif.applicationIconBadgeNumber = 1;
     localNotif.userInfo = [NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Get Food"], @"foodItem", nil] ;
   [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
    [localNotif release];

    Thanks in advance.
4

2 に答える 2

1

NSCalendar と NSDateComponents を使用して計算を行う必要があります - 次のようなものです:

NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* twoDaysAgo = [[NSDateComponents alloc] init];
twoDaysAgo.day = -2;
NSDate* dateToFire = [calendar dateByAddingComponents:twoDaysAgo toDate:date options:0];
于 2012-09-01T03:46:53.483 に答える
0

NSCalendarクラスを使用して、カレンダーの日付(特定のタイムゾーンでの年/月/日/時間...表現)を使用して算術演算を実行できます。ほとんどの場合、「24 * 60 * 60」秒は1日ですが、ユーザーはおそらく違いに気付かないでしょう。

于 2012-08-31T09:06:03.903 に答える