在我的理解中,一个长期运行的任务NSOperation应该在它的main函数中实现,一旦NSOperation被添加到一个NSOperationQueue.
这对我来说很好,直到现在,我NSOperation的主要任务不止一项。
第一个任务是解析文档(打开文档时应该只应用一次)。
第二个任务是附加NSData到文档(对于打开的文档可以多次调用)。
我能想到的唯一解决方案是将两个任务都移到main函数中,并在运行时决定执行哪个任务:
- (void)main
{
@autoreleasepool
{
if(firstTaskTsDone)
{
[self doSecondTask];
}
else
{
[self doFirstTask];
firstTaskTsDone = YES;
}
}
}
但我想一定有更好的方法来实现这一点?
还:如何使用并发操作获得相同的结果?