我有一个动作,当用户点击屏幕上的按钮时开始(例如“导入”)。同时,屏幕底部会显示一个UIToolbar,用户可以选择取消此操作。如何正确发送取消消息到初始功能?如果用户点击“取消”,我不希望“导入”继续。从理论上讲,我可以将它设置为一个单独的线程(我可以杀死它),但我不确定这样做的正确方法是什么,以便它可以自行清理。有哪些其他策略可以“杀死”用户已经开始的功能?
答案 0 :(得分:1)
使用以下内容创建单独的操作:
NSOperationQueue* queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation: [[[NSInvocationOperation alloc] initWithTarget: self
selector: @selector(_backgroundWorker)
object: nil] autorelease]];
这样就可以在不停止主UI线程的情况下执行_backgroundWorker。
按下一个取消按钮,设置一些内部变量并在_backgroundWorker中检查其值。