我已经有这样的问题了,不过我已经删除了。

我有一个非常简单的应用程序,它有一个根视图控制器,它在其他两个视图控制器视图之间切换。因此,在我的根视图控制器中,它延迟加载其他两个视图控制器的实例。每次按下工具栏中的切换按钮时,当前显示的视图控制器(其视图)将被卸载(设置为 nil),并且新的视图控制器将被加载并添加到子视图中。

由于我加载视图控制器并在特定时间卸载,getter 中的延迟加载代码非常令人困惑,因为我实际上不想在使用它们时正确加载它们,我需要在之前加载它们,这样翻转动画就会看起来不错。所以我想我想要使用 loadFirstVC 和 loadSecondVC 方法来加载视图控制器。这是一个好主意吗?

有帮助吗?

解决方案

延迟加载的主要原因不是推迟肯定会发生的加载。它用于推迟可能永远不需要的加载。(这对于数据更改时强制重新加载也很有用,但这不是您的问题。)

例子:假设您有一堆有关某人的数据,包括存储在外部文件中的照片。但是只有当用户转到子视图时才会显示照片,所以为什么要从文件中加载照片,直到您确定子视图将会出现为止?繁荣,使用延迟加载。

当您知道要加载某条数据时,加载它的确切时间就不太重要了。

什么时候重要?嗯,这确实是一个优化问题。有一句话你可能听过:如果你还没有,现在正是最好的时机:“过早的优化是所有(编程)罪恶的根源。”

所以问自己两个问题:

  1. 一定需要该数据吗?如果否,则继续使用延迟加载技术。如果是,请转至问题 2。

  2. 当我加载数据时有什么影响吗?[一个例子是,它很大,我不想加载它,直到我卸载了其他东西来为它腾出空间]如果“否”,请将其放在任何可以使用的地方。如果是...请回来再次询问我们,并提供更多详细信息。

...我怀疑这并没有回答你原来的问题,但听起来你可能一开始就问错了问题。如果我弄错了,请道歉。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top