我正在尝试自己做一个计时器,但它不起作用。似乎每次重复都没有,任何人?它适用于OS X,但不适用于iOS。
我只需要一个有效的循环方法 - 任何建议?
部首:
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *timerOutlet;
- (void)timer:(id)sender;
@end
实现:
@synthesize timerOutlet;
- (void)viewDidLoad
{
[super viewDidLoad];
started = TRUE;
[self timer:nil];
}
- (void)timer:(id)sender {
int test = 1;
NSString *number = [NSString stringWithFormat:@"%i",test];
timerOutlet.text = number;
[self performSelector:@selector(timer:) withObject:Nil afterDelay:1.0];
test ++;
}
答案 0 :(得分:3)
问题是你每次执行timer方法时重新声明test
并为其分配1。因此,如果要么省略声明并使test
成为实例变量,要么使其成为static
,那应该有所帮助。但是,除此之外,你应该使用NSTimer对象而不是强奸框架。
- (void)viewDidLoad
{
[super viewDidLoad];
started = TRUE;
test = 1;
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timer:) userInfo:nil repeats:YES];
}
- (void)timer:(id)sender {
NSLog(@"%i",test);
test++;
}
答案 1 :(得分:0)
你在int test = 1;
中忘了“静态”static int test = 1;
你应该感到高兴。