在一个函数中变量为nil

时间:2016-09-14 07:32:15

标签: ios swift swift3

我使用的是最新的Xcode版本8.0(8A218a)和Swift 3.0。

我正在使用正确分配和使用的UIScrollview(m_scrollView)。

调用callbackForceUpdateEvent时,m_scrollView正常,但在调用showEvents后,我在尝试打印其描述(A)时收到错误:fatal error: unexpectedly found nil while unwrapping an Optional value。如果我尝试访问其子视图(B),我也会收到此错误。但是,我可以添加子视图(C),并且它可以正确显示。仅打印其描述或访问其子视图失败。

override func callbackForceUpdateEvent(_ event: Event) {

        print (self.m_scrollView) // works fine

        self.showEvents()
    }

func showEvents() {
     /*(A)*/ print (self.m_scrollview) // fatal error: unexpectedly found nil while unwrapping an Optional value

     /*(B)*/ for view in m_scrollview.subviews { // fatal error: unexpectedly found nil while unwrapping an Optional value
     }

     /*(C)*/ m_scrollView.addSubview(v) // works fine !!!
}

它让我疯狂了2天。

1 个答案:

答案 0 :(得分:0)

我尝试重命名我的变量,现在它正常工作。我理解了我的错误:变量m_scrollview也在超类中声明。

我不知道为什么Swift编译器没有告诉我这一点。但在重命名变量之后,斯威夫特告诉我了......

问题解决了!