0

我想终止所有当前调用的方法,然后简单地重新初始化我当前的对象。所以当用户点击开始按钮时,我会调用一堆方法......开始做一些事情。然后当用户点击取消时,我需要简单地停止所有正在运行的任务/方法并重新初始化。

我不希望应用程序本身终止。所以不能使用 [NSApp terminate:nil]。我只需要停止所有当前功能,然后我可以调用 [self init]; 提前致谢。

4

1 回答 1

2

首先,您必须设置一些标志并禁用您的用户界面,直到所有方法都完成。例如,self.cancelled = YES

接下来,如果设置了该标志,则应调整每个方法以返回:

- (void)doSomething
{
    if (self.cancelled) return;
    // ...
    for (/* ... */) {
        // ...
        if (self.cancelled) return;
        // ...
    }
    // etc...

}

然后,您需要一种机制来跟踪您的所有方法。最有可能的是,您将使用NSOperationQueueor dispatch_queue_t。查看文档以了解如何在队列变空时获得通知。

最后,重置self.cancelled标志并取消阻止您的用户界面。

于 2012-06-02T22:17:29.367 回答