我在 Xcode 4.2 中创建了一个 NSTimer,它可以工作,但我遇到了这个问题。
这是我在模拟器中的项目
当我按开始时它开始,当我按停止时它停止,当它停止时它会重置,但是当它启动时,我按下重置时它什么也没发生,它在启动时不会重置,基本上你必须停止然后重置是方法和这个或者我是否需要在任何地方添加代码,这是我的代码的副本。
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController {
IBOutlet UILabel *time;
NSTimer *myticker;
//declare baseDate
NSDate* baseDate;
}
-(IBAction)stop;
-(IBAction)reset;
@end
这是我的实现
#import "FirstViewController.h"
@implementation FirstViewController
@synthesize baseDate;
-(IBAction)start {
[myticker invalidate];
self.baseDate = [NSDate date];
myticker = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];
}
-(IBAction)stop;{
[myticker invalidate];
myticker = nil;
}
-(IBAction)reset {
self.baseDate = [NSDate date];
time.text = @"00:00:0";
}
-(void)showActivity {
NSTimeInterval interval = [baseDate timeIntervalSinceNow];
double intpart;
double fractional = modf(interval, &intpart);
NSUInteger hundredth = ABS((int)(fractional*10));
NSUInteger seconds = ABS((int)interval);
NSUInteger minutes = seconds/60;
time.text = [NSString stringWithFormat:@"%02d:%02d:%01d", minutes%60, seconds%60, hundredth];
}
对此,我真的非常感激。谢谢。