objective-c - 等待 NSURLConnection 委托(delegate)完成

标签 objective-c ios cocoa-touch nsurlconnection

我有以下顺序:

  • 启动 MBProgressHUD 微调器
  • 使用 NSConnectionURL 下载多个图像并实现 connectionDidFinishLoading 委托(delegate)以显示图像
  • 下载所有图像后停止微调器并显示包含所有图像的父 View

  • 我应该如何实现 connectionDidFinishLoading:确定是否下载了所有图像以便我可以停止微调器?

    我应该跟踪下载次数,但是线程安全呢?

    还是我应该看GCD?

    最佳答案

    我会使用 NSOperationQueue并将下载作为单个 block 操作与同步 NSURLConnection 提交要求。您可以在那里设置最大并发操作数,这样您就不会一次下载所有内容,并且可以免费取消。跟踪完成可以简单地通过向队列提交另一个操作来完成——最后提交的操作将在所有下载完成后运行。不过,这可能需要将并发操作的数量限制为一个,因此另一种方法是监视(KVO)剩余操作的数量。当它下降到零时,你就完成了。

    关于objective-c - 等待 NSURLConnection 委托(delegate)完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937976/

    相关文章:

    objective-c - 创建调色板 CGImageRef

    iphone - C++ 中的静态初始化与 Objective-C 混合

    ios - 如何用很多图像加快 tableview 的性能?

    ios - NSURLConnection 和 NSUrlSession 之间的确切区别?

    ios - XMPP 客户端网络故障和 Openfire 离线消息

    iphone - 在 MVC 中,您在哪里放置对模型类的引用?

    ios - UICollectionView 不显示任何图像

    ios - iOS中的视频格式验证

    iphone - 是否可以通过 iPhone SDK 的 API 搜索附近的餐馆和酒吧?

    ios - 如何创建左侧带有后退按钮的导航栏?