可可 - 暂停一种方法

时间:2011-01-09 22:25:30

标签: objective-c cocoa methods

如何在不冻结UI的情况下暂停方法,然后在被告知时继续执行该过程?

谢谢,

凯文

2 个答案:

答案 0 :(得分:3)

没有办法中断任意方法的执行,然后再恢复它。

您可以将您的方法分成多个部分,这些部分代表您希望能够在两者之间暂停的工作单元。然后,您可以使用计时器(NSTimer[NSObject performSelector:withObject:afterDelay:]作为特定的暂停间隔。

有关您尝试执行的操作的详细信息可能会在此处提供一些更具体的有用建议。

答案 1 :(得分:2)

有一种方法可以阻止UI停止,例如。定时器也是。这或多或少是我们运行循环的全部原因(好吧,这不是真的,但在你的情况下是这样)。

只需将此插入到您的功能中,一切都会正常工作:

while(pauseFunction)
{
    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1f]];
}

备注:使用runloop计划的所有内容都会继续运行,这是UI,计时器,网络等.pp。