Calling a Method at NSDate

前端 未结 2 1348
一向
一向 2021-01-16 03:18

I\'m trying to call a method at a certain time and date (using an NSDate) but I can\'t work out how to do it.

I don\'t want to use NSTimer

相关标签:
2条回答
  • 2021-01-16 04:00

    Why don't you just use the NSTimer, and in the...

    - (void)applicationDidBecomeActive:(UIApplication *)application
    

    callback, check the time and date, and update the timer, or call the function if the date has passed.

    0 讨论(0)
  • 2021-01-16 04:21

    At first, it sounded to me like you want the performSelector:withObject:afterDelay: method. So you have an NSDate *date when you want to call the selector.

    NSTimeInterval delay = [date timeIntervalSinceNow];
    [self performSelector:@selector(methodToFire) withObject:nil afterDelay:delay];
    

    Of course, this won't live past your runtime, so you've pretty much outlined what you need to do already. You just save your date somewhere (there are MANY ways to do that), and then check against it in applicationDidBecomeActive. You can use the same timeIntervalSinceNow method I used above. (If the date has past, the the interval would be negative.)

    if ( [date timeIntervalSinceNow] <= 0 ) {
        // do something...
    }
    
    0 讨论(0)
提交回复
热议问题