0

我正在制作一个 Cocoa 应用程序,我希望它能够进行每日更新。(此应用程序仅供个人使用)我希望它每天在特定时间进行更新,所以我将计算机设置为在那个时间唤醒。我在我的应用程序中设置了一个通知观察器,如果应用程序收到计算机唤醒通知,它将执行此功能:

- (void) receiveWakeNote: (NSNotification*) note
{
   [self conductBeginning];
}

我应该添加什么以确保唤醒通知发生在特定时间之间,例如 16:00 和 16:15 之间,然后只执行

[self conductBeginning];

线。

4

2 回答 2

2
NSDate *now = [NSDate date];

NSUInteger units = NSHourCalendarUnit | NSMinuteCalendarUnit;
NSDateComponents *components = [[NSCalendar currentCalendar] components:units
                                                               fromDate:now];
if (components.hour == 16 && components.minute <= 15)
    NSLog(@"it's time");
于 2012-08-24T16:59:09.527 回答
0

像这样的东西:

NSDate * aDate = ...;
NSDate * bDate = ...;

NSTimeInterval a = [aDate timeIntervalSinceNow];
NSTimeInterval b = [bDate timeIntervalSinceNow];
NSTimeInterval min = a > b ? b : a;
NSTimeInterval max = a < b ? b : a;
NSTimeInterval now = CFAbsoluteTimeGetCurrent();

bool result = now >= min && now <= max;
于 2012-08-24T16:47:27.003 回答