Objective c 目标c-取消NSOperationQueue中的操作

Objective c 目标c-取消NSOperationQueue中的操作,objective-c,ios,nsoperation,nsoperationqueue,afnetworking,Objective C,Ios,Nsoperation,Nsoperationqueue,Afnetworking,我使用的是AFNetworkingAFHTTPClient作为示例,但这个问题通常是关于NSOperationQueue的 AFHTTPClient管理客户端请求的NSOperationQueue 它还有一个cancelAllOperations方法,该方法在self.operationQueue.operations上迭代,并为每个操作调用[operation cancel] 如果我理解正确,它将取消队列中等待的所有操作-这意味着尚未启动的操作,但当前正在运行的操作又如何?它们不会从苹果的文档

我使用的是
AFNetworking
AFHTTPClient
作为示例,但这个问题通常是关于
NSOperationQueue

AFHTTPClient
管理客户端请求的
NSOperationQueue

它还有一个
cancelAllOperations
方法,该方法在
self.operationQueue.operations
上迭代,并为每个操作调用
[operation cancel]


如果我理解正确,它将取消队列中等待的所有操作-这意味着尚未启动的操作,但当前正在运行的操作又如何?它们不会从苹果的文档中被取消

对于当前正在执行的操作,“取消”表示该操作 对象的工作代码必须检查取消状态,停止它是什么 完成,并将自己标记为已完成。对于排队但 尚未执行,队列仍必须调用操作对象的 start方法,以便它可以处理取消事件和标记 它本身就已经完成了


操作将保留在其队列中,直到它报告它已完成 与它的任务。完成任务并不一定意味着 操作完成了该任务。操作也可以是 取消。取消操作对象会将该对象留在队列中 但通知对象它应尽快中止其任务 可能的对于当前正在执行的操作,这意味着 操作对象的工作代码必须检查取消状态,停止 它正在做什么,并将自己标记为已完成。对于以下操作: 已排队但尚未执行,队列仍必须调用该操作 对象的start方法,以便它可以处理取消事件 并将自己标记为已完成


是的,但问题是如果我迭代operationQueue.operations,它会包括“当前正在执行的操作”吗?我想当一个操作启动时,它会退出队列,不是吗?这意味着它不在operationQueue.operations中,当我调用cancel时,它不会被取消否?操作将保留在其队列中,直到它报告其任务已完成。