Я пытаюсь запустить приведенный ниже код, но он продолжает блокировать мой симулятор после того, как «Tick» записывается на консоль. Он никогда не выводит «Tock», поэтому я предполагаю, что это связано со строкой «NSTimeInterval elapsedTime = [startTime timeIntervalSinceNow];» IBactions активируются с помощью кнопок. timer и startTime определены в .h как NSTimer и NSDate соответственно.
Может кто-нибудь сказать мне, что я делаю не так?
код:
- (IBAction)startStopwatch:(id)sender
{
startTime = [NSDate date];
NSLog(@"%@", startTime);
timer = [NSTimer scheduledTimerWithTimeInterval:1 //0.02
target:self
selector:@selector(tick:)
userInfo:nil
repeats:YES];
}
- (IBAction)stopStopwatch:(id)sender
{
[timer invalidate];
timer = nil;
}
- (void)tick:(NSTimer *)theTimer
{
NSLog(@"Tick!");
NSTimeInterval elapsedTime = [startTime timeIntervalSinceNow];
NSLog(@"Tock!");
NSLog(@"Delta: %d", elapsedTime);
}
У меня есть следующее в .h:
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> {
NSTimer *timer;
NSDate *startTime;
}
- (IBAction)startStopwatch:(id)sender;
- (IBAction)stopStopwatch:(id)sender;
- (void)tick:(NSTimer *)theTimer;
@property(nonatomic, retain) NSTimer *timer;
@property(nonatomic, retain) NSDate *startTime;
@end