如何告诉iPhone OS功能停止/取消?

时间:2010-08-16 14:30:40

标签: iphone multithreading ios ibaction

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

1 个答案:

答案 0 :(得分:1)

使用以下内容创建单独的操作:

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

这样就可以在不停止主UI线程的情况下执行_backgroundWorker。

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