UIApplicationDidBecomeActiveNotification和viewWillAppear导致数据源冲突

时间:2016-06-07 03:59:25

标签: ios iphone swift uitableview

在我的视图控制器中,我调用一种方法来请求数据填充我的tableView并处理viewWillAppear的任何通知以及UIApplicationDidBecomeActiveNotification的通知观察者。

这在我最初启动应用时(而不是从后台启动)时会出现问题,因为我的loadJSON方法会被调用两次,导致cellForRowAtIndexPath在我的数据发生变化时崩溃。

有人建议如何处理这个问题吗?

2 个答案:

答案 0 :(得分:0)

您可以在调用之前测试loadJSON任务是否正在执行。

或者你可以在执行之前取消私有的loadJSON任务。

答案 1 :(得分:0)

我使用全局对象来管理数据,我应该从不同的地方下载 我的对象(例如,名为DataManager)具有通知,块回调或委托,以通知侦听器有关数据更新的信息。
它还有检查其状态的方法,例如:isDownloading。如果我的DataManager更复杂的类,它有任何方面的状态或许多方法的枚举。

现在我不喜欢使用Singleton来实现DataManager,我更喜欢在AppDelegate中创建一个属性来存储管理器的实例。