ios - iOS 上的计时器不起作用

标签 ios timer

我想自己制作一个计时器,但它不起作用。似乎每次重复它都会为零,有人吗?它适用于 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 ++;                
}

最佳答案

问题在于,每次执行计时器方法时,您都会重新声明 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++;
}

关于ios - iOS 上的计时器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221739/

相关文章:

ios - Xcode 错误 : Semantic Issue, 在对象类型 'className' 上找不到属性 'GKEntity *'

java - 黑莓编程——定时器类

android - 如何创建一个在后台运行的计时器并动态显示一秒一秒

javascript - 获取点击和页面加载之间的加载时间

timer - 如何在一天中的特定时间通过自动热键打开文件?

android - 我如何在选项卡之间显示 toast ?

iphone - 组合标签、 TextView 和图像(但图像与文本滚动)

ios - 如何添加 HKQuantityType 数组以进行健康包授权

objective-c - SQLite 中的响应时间限制

ios - 选择和取消选择UITableView行