当前日期事件更改值

时间:2015-11-30 10:27:17

标签: ios objective-c events nsdate

如果当前日期字段发生变化,是否有通知方式?

如果是的话怎么样? 如果不是我怎么能这样做? 我需要将NSDate永久地与当前日期进行比较,并知道它们之间的差异何时为10分钟。

精密:

我有NSDate *futurDate例如:05/12/2015 05:00 AM。

和当前日期NSDate *currentDate = [NSDate date];(2015年12月5日03:00)

当currentDate将于2015年12月5日上午04:50发布时,我需要收到通知。

由于

1 个答案:

答案 0 :(得分:1)

您需要做的就是建立一个10分钟前的日期,然后使用新日期作为目标。

NSDate *futureDate = ...;  // Tell me when it's 10 minutes before this date.
NSDate *reminderDate = [futureDate dateByAddingTimeInterval:-1 * 60 * 10];  // Date 10 minutes earlier.
NSDate *now = [NSDate date];

if ([reminderDate timeIntervalSinceDate:now] < 0) {
    // It is currently within 10 minutes of future date.
} else {
    // Schedule a timer to fire in the number of seconds between
    // the current date and our desired reminder date.
    [NSTimer scheduledTimerWithTimeInterval:[reminderDate timeIntervalSinceDate:now]
                                     target:self 
                                   selector:@selector(timerHandler:) 
                                   userInfo:nil 
                                    repeats:NO];
}

- (void)timerHandler:(NSTimer *)timer {
    // It's now within 10 minutes of future date.
}