【发布时间】:2011-06-06 05:56:51
【问题描述】:
如何在不冻结 UI 的情况下暂停方法,然后在被告知时继续该过程?
谢谢,
凯文
【问题讨论】:
-
NSOperation。我会给你更多信息,但我目前正在学习如何做:developer.apple.com/library/ios/#technotes/tn2009/tn2109.html
标签: objective-c cocoa methods
如何在不冻结 UI 的情况下暂停方法,然后在被告知时继续该过程?
谢谢,
凯文
【问题讨论】:
标签: objective-c cocoa methods
没有办法中断任意方法的执行,然后再继续执行。
您可以将您的方法分成多个部分,这些部分代表您希望能够在其间暂停的工作单元。然后,您可以使用计时器(NSTimers 或 [NSObject performSelector:withObject:afterDelay:] 用于特定的暂停间隔。
更多关于您正在尝试做的事情的信息可能会在此处提供一些更具体有用的建议。
【讨论】:
有一种方法可以防止 UI 停止,例如。计时器。这或多或少是我们有运行循环的全部原因(嗯,这不是真的,但在你的情况下是这样)。
只需将其插入您的函数中,一切都会正常工作:
while(pauseFunction)
{
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1f]];
}
备注:使用 runloop 安排的所有内容都会继续运行,这是 UI、计时器、网络等。pp。
【讨论】: