Swift:同步表格视图中的数据表示返回JSON数据

时间:2015-06-12 10:34:12

标签: swift uitableview

我刚刚开始使用从Web服务中提取数据,因此还有定时和异步操作的问题。我目前有一个IBAction,它既启动/处理JSON数据,又通过storyboard segue显示视图控制器。毫无疑问,在返回/处理数据之前,表VC已准备就绪。一个更好的选择可能是使用IBAction来获取/处理数据,然后从代码中启动segue,但作为一个学习过程,我很感兴趣,如果通过故事板有一个“首选”的方式来实现这一点并同步两个过程。

我一直在玩的一些想法可以使用,但感觉不对,是:

  1. 在获取新数据之前使数据源为空,然后在tableView中:numberOfRowsInSection执行一个讨厌的循环,检查是否存在有效的数据源。

  2. 执行类似于1但使用委托或通知在数据可用时警告tableView委托方法。这应该是有效的,但它仍然涉及一个不雅的等待循环

  3. 我确信必须有更好的方法来做到这一点,所以有人可以给我一些指示,以便我可以去研究它吗?

    感谢。

1 个答案:

答案 0 :(得分:0)

作为开发人员,您无法估计Web服务的响应时间(您也不应该)。因此,延迟tableview或其包含控制器的显示将使界面看起来没有响应。那不好。 Apple可能会认为您的应用已被破坏,并且不会批准您。

您需要显示一个' loading'尽快留言。一些策略:

将dataSource保持为null / 0项,直到加载数据。 UITableView有一个名为backgroundView的属性,您可以使用该属性显示可用于显示加载消息的属性。

你也可以隐藏UITableView并在顶部显示UIActivityIndicatorview,以便稍后在加载数据时隐藏(并且表格视图可见)