我已经下载了Apple的PageControl Sample Code,以尝试学习如何在用户滚动时创建延迟加载的页面。但是,当我滚动画面时,开箱即用的画面消失了,并且出现黑屏。如果代码中有错误,该发生吗?
答案 0 :(得分:0)
您在运行应用程序之前是否已编辑代码?
通过注释掉viewDidLayoutSubviews方法调用中的_ = setupInitialPages
调用,我可以重现您的问题。无需评论,该应用程序可以正常运行。
对于延迟加载变量,要记住的事情是直到调用它们时才填充它们,这就是延迟加载的全部要点。如果没有对延迟加载的变量的引用,则不会实例化该变量,并将得到您在测试中看到的结果。
延迟加载的var的语法为:
lazy var someVarName: the variable type e.g. Int, UIIMage, String... whatever = {
// Code in here to populate the variable
return variable with the declared type
}()
您需要确定对lazy var的调用返回与该类型匹配。还要记住,一个懒惰的var称为变量,一旦设置就不会改变,就这一点而言更像是一个常量。有一些解决方法,但是已经在此处解决了... Re-initialize a lazy initialized variable in Swift