1

我已经使用UIDatePickerand进行了剩余应用程序NSLocalNotification。剩余的应用程序已准备好并且正在运行,但剩余的应用程序每次都会在几秒钟后触发。

这是代码:

-(void)addRemainder
{

    NSDateFormatter *dateform=[[NSDateFormatter alloc]init];
    dateform.dateFormat = @"dd-MM-yyyy HH:mm";
    NSString *formattedDate = [dateform stringFromDate:datePicker.date];
    date=[dateform dateFromString:formattedDate];
    str=[dateform stringFromDate:date];

    if(textField1.text!=nil)
    {

        notification = [[UILocalNotification alloc] init];
        notification.fireDate = date;
        notification.timeZone = [NSTimeZone defaultTimeZone];
        notification.alertBody = textField1.text;
        notification.alertAction=@"Show me the item";
        notification.soundName = UILocalNotificationDefaultSoundName;
        NSUInteger nextBadgeNumber = [[[UIApplication sharedApplication]    scheduledLocalNotifications] count] + 1;
        notification.applicationIconBadgeNumber = nextBadgeNumber;
        notification.repeatInterval = NSDayCalendarUnit;
        [[UIApplication sharedApplication] scheduleLocalNotification:notification];

    }

    if ([remainderr isEqualToString:@"edit"])
    {
        [remainder replaceObjectAtIndex:([index integerValue]) withObject:textField1.text];
        [TimeDate replaceObjectAtIndex:([index integerValue]) withObject: str];
        [self.navigationController popViewControllerAnimated:YES];
    }
4

1 回答 1

0

我猜您的问题将出在 NSDateFormatter 上,因为您在其中添加了秒数,它也会返回秒数。因此会有几秒钟的延迟。

将您的 NSDateFormatter 更改为

@"dd-MM-YYYY HH:mm"

解释:

LocalNotification 将设置为格式@"dd-MM-YYYY HH:mm:SS",因此我们必须将其转换为格式@"dd-MM-YYYY HH:mm"(无秒)。

于 2013-10-25T07:18:05.047 回答