根据我的理解,NSOperation
的长期运行任务应该在其main
函数中实现,在NSOperation
被添加到NSOperationQueue
之后,它会被触发。NSOperation有一个以上的长时间任务
这对我来说很好,直到现在,我的NSOperation
有一个以上的主要任务。
第一项任务是解析一个文档(在打开文档时应该只应用一次)。
第二项任务是将NSData
附加到文档(对于打开的文档可以多次调用)。
我能想到的唯一的办法就是这两个任务移动到main
功能,并在运行时执行该任务的决定:
- (void)main
{
@autoreleasepool
{
if(firstTaskTsDone)
{
[self doSecondTask];
}
else
{
[self doFirstTask];
firstTaskTsDone = YES;
}
}
}
但我想,必须有一个更好的方式来实现这一目标?
ALSO:如何使用并发操作实现相同的结果?