Swift3 滚动和访问时自定义tableviewcell中的Textfield会崩溃

Swift3 滚动和访问时自定义tableviewcell中的Textfield会崩溃,swift3,uitextfield,ios10,tableviewcell,Swift3,Uitextfield,Ios10,Tableviewcell,当我添加自定义tableview单元格时,该单元格具有文本字段和滚动tableview 该单元格从屏幕上消失,然后我去访问在该应用程序中输入的文本字段的访问值 这是我进入access textfield并崩溃的代码 let index0 : IndexPath = IndexPath(row: 0, section: 0) let tblCell0 = tblInfo.cellForRow(at: index0)! as! MyInfromationCell

当我添加自定义tableview单元格时,该单元格具有文本字段和滚动tableview 该单元格从屏幕上消失,然后我去访问在该应用程序中输入的文本字段的访问值

这是我进入access textfield并崩溃的代码

        let index0 : IndexPath = IndexPath(row: 0, section: 0)
        let tblCell0 = tblInfo.cellForRow(at: index0)! as! MyInfromationCell
        let strEmail = tblCell0.txtEmail?.text

        let index1 : IndexPath = IndexPath(row: 1, section: 0)
        let tblCell1 = tblInfo.cellForRow(at: index1)! as! MyInfromationCell
        let strAboutMe = tblCell1.txtDescription?.text

        let index2 : IndexPath = IndexPath(row: 2, section: 0)
        let tblCell2 = tblInfo.cellForRow(at: index2)! as! MyInfromationCell
        let strStudioName = tblCell2.txtStudioName?.text

        let index3 : IndexPath = IndexPath(row: 3, section: 0)
        let tblCell3 = tblInfo.cellForRow(at: index3)! as! MyInfromationCell
        let strWebsite = tblCell3.txtWebsite?.tex

当滚动tableview时,单元格将被重新使用,因此当您尝试访问屏幕上未显示的单元格时,会得到一个nil。请参考这个

在访问单元格之前,应安全地将其打开

let index2 : IndexPath = IndexPath(row: 2, section: 0)
guard let tblCell2 = tblInfo.cellForRow(at: index2) as? MyInfromationCell else { return }

如果给定的indexpath的值为nil,则返回函数。

可以发布代码吗?我已经更新了代码。但是我需要从中获取textfield的值?它仍然不工作。当单元格不在屏幕上时,您将无法获取值。您可以创建一个模型对象,将textfields文本的值存储到一个新数组中,您可以从该模型中获取值。谢谢