初始化计时器后,其他代码永远不会运行

时间:2011-09-18 12:50:50

标签: objective-c multithreading

这是我用于初始化计时器的代码:

    self.timer = [NSTimer scheduledTimerWithTimeInterval:5.0f 
target:self selector:@selector(tick:) userInfo:nil repeats:YES]; 

    NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop]; 
    [currentRunLoop run]; 

    int a = 10;

调用“[currentRunLoop run];”后,“int a = 10;”不执行。(甚至在调用tick:方法之后)

为什么呢? 谢谢。

1 个答案:

答案 0 :(得分:1)

[运行循环运行]在那里停止 - 它永远不会超过那段代码只是“循环”

您通常不需要创建自己的运行循环。

如果你想在一个单独的线程上实现一个计时器,只需在主线程上使用一个计时器,让目标方法在一个单独的线程上执行它的工作