0

以前はローカル通知に取り組んでいましたが、今は問題が発生しています。今日、アプリで日付の1日前:2012年7月7日に通知を設定する必要があるとします。どうすればそれができるようになりますか。このように通知を設定しています。

- (IBAction) scheduleNotification:(id) sender {

    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    NSDateFormatter *formatter = [[[NSDateFormatter alloc]init]autorelease];

    for (int i = 0; i< [delegate.viewController.contactList count] ; i++) {
        UILocalNotification *localNotification = [prototypeNotification copy];
        NSString *name = [[delegate.viewController.contactList objectAtIndex:i]objectForKey:NAME_KEY];
        NSString *birthday = [[delegate.viewController.contactList objectAtIndex:i]objectForKey:BIRTHDAY_KEY];
        if (birthday) {
            [formatter setDateFormat:@"MM/dd/yyyy"];
            NSDate *date = [formatter dateFromString:birthday];
            if (date == nil) {
                [formatter setDateFormat:@"MM/dd"];
                NSDate *date = [formatter dateFromString:birthday];
            }
            else {

            }
            self.alarmTime = [date dateByAddingTimeInterval:10];
            localNotification.fireDate = alarmTime;
            localNotification.timeZone = [NSTimeZone defaultTimeZone];
            localNotification.applicationIconBadgeNumber = 1;

            NSString *itemName = @"B'day Alert!!!";
            NSString *msgName = [NSString stringWithFormat:@"Celebrate %@'s B'day",name];
            NSDictionary *userDict = [NSDictionary dictionaryWithObjectsAndKeys:itemName,MessageKey, msgName,TitleKey, nil];
            localNotification.userInfo = userDict;
            localNotification.soundName = self.soundName;
            // Schedule the notification
            [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

        }

        else {
//            write else part
        }
        [localNotification release];
    }

}

この行に出くわしたときNSDate *date = [formatter dateFromString:birthday];、日付が正確に来ていないので、ローカル通知を正しく設定できません。何か間違ったことをしてください、私を助けてください。

4

1 に答える 1

0

NSDateFormatterの動作は、あなたが思っているものとは異なります。GMT、UTC、現在のシステムロケールに基づくタイムゾーン、またはその他のものを使用しているかどうか混乱している場合は、この質問を読んで回答してください。NSDateFormatterは文字列から誤った日付を返します

于 2012-06-17T20:58:49.220 に答える