假设ViewControllers dataSource需要花费大量时间来返回结果,这是一种不好的做法

时间:2012-07-05 09:40:32

标签: iphone ios cocoa-touch uiviewcontroller objective-c-blocks

我的ViewController有一个dataSource,在我的情况下,它必须从Web服务中获取数据。当我在我的ViewController中假设dataSource-methods需要很长时间并且只从另一个线程调用它们时,这是不好的做法。

所以我做了以下事情:

  1. 显示项目列表
  2. 用户触摸单元格
  3. 立即显示DetailViewController,其父级为dataSource
  4. DetailViewController现在
    • 显示加载指示符
    • 向dataSource询问另一个Thread中的数据
    • 完成后隐藏指示符(在主线程上调用)

1 个答案:

答案 0 :(得分:1)

老实说,我更喜欢那种你通常看到的方法:

  1. 用户触摸单元格
  2. 当前UIViewController向DataSource询问数据
  3. DataSource向Web服务发出请求。
  4. 完成后,新UIViewController将加载数据。
  5. 虽然,您可以给用户提供良好的体验,如果您在Cell上放置一个微调器或某种可视参考,表明背景上正在发生某些事情。无论哪种方式,它有时是品味,用户体验,甚至是客户的必需品。

      

    当我在我的ViewController中假设时,这是不好的做法   dataSource-methods需要很长时间

    Murphy Law ...因此,假设并在发生这种情况时创建必要的机制是一种很好的做法。