我在我的应用程序中使用了NSRunloop。从我当前的控制器开始,我也需要退出运行循环。我如何退出当前的运行循环。
Runloop实现如下。
while(!completed) {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:2.0]];//[NSDate distantFuture]
}
提前致谢..
答案 0 :(得分:0)
这是我在其中一个项目中得到的。似乎工作....
do {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
} while (!finished);
答案 1 :(得分:0)
要杀死循环中的运行循环,必须使用CoreFoundation:
CFRunLoopStop(CFRunLoopGetCurrent());
更好,正如-runMode:beforeDate:
...在处理完第一个输入源或达到 limitDate 后返回...
所以你可以在运行循环中安装一个输入源(CFRunLoopSource),并在你完成后触发它。