如何退出currentrunloop

时间:2010-05-03 10:51:51

标签: iphone

我在我的应用程序中使用了NSRunloop。从我当前的控制器开始,我也需要退出运行循环。我如何退出当前的运行循环。

Runloop实现如下。

while(!completed) {
    [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:2.0]];//[NSDate distantFuture]
}

提前致谢..

2 个答案:

答案 0 :(得分:0)

这是我在其中一个项目中得到的。似乎工作....

do {
    [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
} while (!finished);

答案 1 :(得分:0)

要杀死循环中的运行循环,必须使用CoreFoundation

CFRunLoopStop(CFRunLoopGetCurrent());

更好,正如-runMode:beforeDate:

手册中所述
  

...在处理完第一个输入源或达到 limitDate 后返回...

所以你可以在运行循环中安装一个输入源(CFRunLoopSource),并在你完成后触发它。