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