Они сделали это действительно легко.Выделите NSTimer
и инициализируйте его датой запуска, используя:
-(id)initWithFireDate:(NSDate *)date
interval:(NSTimeInterval)seconds
target:(id)target
selector:(SEL)aSelector
userInfo:(id)userInfo
repeats:(BOOL)repeats
, затем добавьте его в цикл выполнения, используя:
-(void)addTimer:(NSTimer *)aTimer forMode:(NSString *)mode
в цикле выполнения, например, [NSRunLoop currentRunLoop]
.Не знаю, разбудит ли это устройство или не даст ему заснуть.
edit пример кода
// start in 5 minutes
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:300];
// fire every minute from then on
NSTimer *t = [[NSTimer alloc]
initWithFireDate:date
interval:60
target:self
selector:@selector(stuff:) // -(void)stuff:(NSTimer*)theTimer
userInfo:nil
repeats:YES
];
// make it work
[[NSRunLoop currentRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];
и
-(void)stuff:(NSTimer*)theTimer
{
if ( done ) [theTimer invalidate];
}