【问题标题】:iOS - How to get notified when AFHTTPClient is done with all operationsiOS - 如何在 AFHTTPClient 完成所有操作时收到通知
【发布时间】:2013-06-13 07:32:38
【问题描述】:

我使用AFHTTPClient 将文件作为AFMultipartFormData 上传到API。 AFHTTPRequestOperation-s 是在循环中创建的,所以我不知道它们有多少,也不知道最后一个操作是哪一个。

AFHTTPClient 完成所有操作后,我如何获得通知? 有 operationQueue 属性可以为我计算操作,但我不想为此添加观察者..

【问题讨论】:

    标签: iphone ios objective-c cocoa-touch afnetworking


    【解决方案1】:

    您可以使用 GCD 将一段代码放在后台调用队列中的waitUntilAllOperationsAreFinished,然后发出通知。

    【讨论】:

      【解决方案2】:

      如果@patric-schenke 的回答不起作用(例如,如果您只想计算 upload 操作而不是 all 操作,则可以创建一个计数器。创建一个NSInteger,并在添加操作时递增它。确保在成功和失败块中都递减它。

      您为什么不想向operationQueue 添加观察者呢?我认为用最少的代码就能得到你想要的。

      【讨论】:

      • 我同意你的观点,观察者是实现它的最简单方法,但我认为它会导致一点延迟,因为观察者有自己的时间间隔并且不会在队列完成后立即被解雇?
      • 我在我的一个应用程序的操作队列上使用键值观察,效果很好。虽然它可能更慢,但它变慢的时间是人类无法察觉的。
      猜你喜欢
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      相关资源
      最近更新 更多