我正在尝试自己制作一个计时器,但它不起作用。似乎每次重复都为零,有人吗?它适用于 OS X,但不适用于 iOS。
我只需要一个有效的循环方法 - 有什么建议吗?
标题:
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *timerOutlet;
- (void)timerid)sender;
@end
实现:
@synthesize timerOutlet;
- (void)viewDidLoad
{
[super viewDidLoad];
started = TRUE;
[self timer:nil];
}
- (void)timerid)sender {
int test = 1;
NSString *number = [NSString stringWithFormat"%i",test];
timerOutlet.text = number;
[self performSelectorselector(timer withObject:Nil afterDelay:1.0];
test ++;
}
问题是你重新声明 test
并在每次执行计时器方法时为其分配 1。因此,如果您要么省略声明并将 test
设为实例变量,要么将其设为 static
,这应该会有所帮助。但是,除此之外,您应该真正使用 NSTimer 对象而不是强行使用框架。
- (void)viewDidLoad
{
[super viewDidLoad];
started = TRUE;
test = 1;
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selectorselector(timer userInfo:nil repeats:YES];
}
- (void)timerid)sender {
NSLog(@"%i",test);
test++;
}
关于ios - iOS 上的计时器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221739/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |