我要进入NSBlockOperation,我有一些问题。值得注意的是,文档 for addExecutionBlock说:
讨论 指定的块不应对其执行环境作出任何假设。 在接收方执行或已经完成时调用此方法将引发
NSInvalidArgumentException异常。
什么样的情况会抛出NSInvalidArgumentException?什么是真正的“当接收者正在执行”的意思?是什么导致了这一切?
发布于 2014-07-26 00:00:21
在操作正在运行或已经完成时,不能使用addExecutionBlock:添加执行块。这就是所有的意义。
发布于 2014-07-26 02:11:00
块操作对象可以具有与其关联的零个或多个执行块。当块操作启动时,所有关联的执行块都被提交给并发执行。警告是,在此之后不能向操作添加更多的执行块。
您可以创建更多的块操作对象并将执行块添加到这些对象中。每个块操作都是独立启动的,因此添加更多执行块的规则是单独计算的。
通常,您将创建块操作,向其添加任何您想要的执行块,然后将操作排队到操作队列上。一旦操作排队,它可能在任何时候开始(取决于就绪,这取决于依赖)。因此,最好不要尝试在排队之后添加执行块。
https://stackoverflow.com/questions/24966131
复制相似问题