我有一个动作,当用户点击屏幕上的按钮时(例如“导入”)开始。同时,屏幕底部出现了一个Uitoolbar,可为用户提供取消此操作的选项。如何将取消消息正确发送到初始功能?如果用户点击“取消”,我不希望“导入”继续。从理论上讲,我可以将其设置为一个单独的线程(然后可以杀死),但是我不确定正确的方法是什么,以便它可以自身清理。能够“杀死”用户已经开始的功能的其他策略还有哪些?

有帮助吗?

解决方案

使用类似的操作创建一个单独的操作:

NSOperationQueue* queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation: [[[NSInvocationOperation alloc] initWithTarget: self 
      selector: @selector(_backgroundWorker) 
      object: nil] autorelease]];

这样,将执行_backgroundWorker,而无需停止主UI线程。

按下一个取消按钮,设置一些内部变量并在_backgroundworker中检查其值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top