uilocalnotification is not firing at exact time

后端 未结 3 1172
难免孤独
难免孤独 2021-01-14 06:36

I want to implement uilocalnotification in my app. but the problem is that it is not firing at the exact time. it is firing after 30 - 40 secs from the given fi

相关标签:
3条回答
  • 2021-01-14 07:25

    I know this is an old question, but I have just figure this out, you can use the dateByAddingTimeInterval : method.

    notif.fireDate = [[datePicker date] dateByAddingTimeInterval:-30];
    
    0 讨论(0)
  • 2021-01-14 07:29

    UILocalNotification is designed for things that are happening far in the future so an error of 30 seconds would be OK (i.e. if I had a meeting at 15:00 then telling me at 15:00:30 wouldn't be a problem :)

    If you want more accuracy than that you will need to keep your app running and use an NSTimer.

    0 讨论(0)
  • 2021-01-14 07:36

    You can set fireDate by using NSDateComponents, in which you can set seconds for firedate. When I set it to 0 doesn't work, but it works if I set it to 1 seconds. 1 second late will be OK compared to 30-40 seconds.

    NSCalendar *cal = [NSCalendar currentCalendar];
        NSDateComponents *dateComps = [cal components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay |NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond   fromDate:fireDate];
        [dateComps setSecond:1];
        [dateComps setNanosecond:00];
        NSDate *newDate = [cal dateFromComponents:dateComps];
        fireDate = newDate;
    
    0 讨论(0)
提交回复
热议问题