在我的 iOS (Swift) 应用程序生命周期中,我应该从 firebase 获取所有数据吗?

Where in my iOS (Swift) application lifecycle should i fetch all my data from firebase?

在从 firebase 获取所有数据之前,用户不能与我的应用交互。所以到目前为止我的新手计划是:

  1. 启动微调器
  2. 从 firebase 获取数据(异步)
  3. 当第 2 步异步作业完成时,然后隐藏微调器

我作为新手的第一个想法通常不是可行的方法,必须有一种更聪明的方法,其中涉及框架(可能是应用程序生命周期中的某个地方)或最佳实践模式。
我在 www 上找不到任何有用的东西。 link 也有帮助。

您应该在 ViewDidLoad() 中获取数据

viewDidLoad()—Called when the view controller’s content view (the top of its view hierarchy) is created and loaded from a storyboard. The view controller’s outlets are guaranteed to have valid values by the time this method is called. Use this method to perform any additional setup required by your view controller.

通常,iOS 仅在首次创建其内容视图时调用 viewDidLoad() 一次;但是,内容视图不一定在控制器首次实例化时创建。相反,它是在系统或任何代码第一次访问控制器视图时延迟创建的 属性.

当您在加载中查看时,将获取您的数据。

如果您想在显示视图时刷新数据,那么我可以使用。

viewWillAppear()—Called just before the view controller’s content view is added to the app’s view hierarchy. Use this method to trigger any operations that need to occur before the content view is presented onscreen. Despite the name, just because the system calls this method, it does not guarantee that the content view will become visible. The view may be obscured by other views or hidden. This method simply indicates that the content view is about to be added to the app’s view hierarchy.

我建议您创建一个视图控制器,它负责显示应用程序的加载并在后台与您的后端同步。 有了这样的视图控制器和加载指示器,您还可以显示百分比进度以获得更好的用户体验。 同步完成后,您可以导航到家庭控制器。

其次,如果您在另一次启动时再次加载相同的数据。添加同步检查,以便一次又一次地下载不同的数据,从而保留应用程序的时间和 space.