我正在尝试使用 构建一个 OS X 邮件客户端MailCore2
,我需要知道当前正在运行哪些操作,以及它们处于什么状态——想想 Mail.app 活动监视器窗口。
我有一些可以在 API 中使用的东西:MCOIMAPSession
对象有一个operationQueueRunningChangeBlock
属性,但它只告诉我会话何时更改状态(运行 => 未运行),但这还不够。
现在我想我必须继承/包装这些来做我想做的事。
我正在尝试使用 构建一个 OS X 邮件客户端MailCore2
,我需要知道当前正在运行哪些操作,以及它们处于什么状态——想想 Mail.app 活动监视器窗口。
我有一些可以在 API 中使用的东西:MCOIMAPSession
对象有一个operationQueueRunningChangeBlock
属性,但它只告诉我会话何时更改状态(运行 => 未运行),但这还不够。
现在我想我必须继承/包装这些来做我想做的事。
MailCore 不提供 API 来跟踪正在运行的操作,我们也不应该提供,因为那是您的工作。实现这一点的典型模式是对操作类进行子类化以使用某种活动对象标记每个类,或者在单独的队列中聚合活动,并在操作分别入队和出队时推送和弹出。Objective-C 接口中每个请求的完成块应该为您提供足够的每个操作的状态,并且某些特定类型的操作甚至包括进度块/钩子。