Ios 更改tableView.contentInset时应用程序崩溃

Ios 更改tableView.contentInset时应用程序崩溃,ios,swift,xcode,Ios,Swift,Xcode,将offsetY值设置为tableView contentInset时 var offsetY: CGFloat = 0 { didSet { let oldEdgeInsets = self.tableView.contentInset self.tableView.contentInset = UIEdgeInsets(top: 0, left: oldEdgeInsets.left, bottom: oldEdg

将offsetY值设置为tableView contentInset时

var offsetY: CGFloat = 0 {
        didSet {
            let oldEdgeInsets   =   self.tableView.contentInset

            self.tableView.contentInset =   UIEdgeInsets(top: 0, left: oldEdgeInsets.left, bottom: oldEdgeInsets.bottom, right: oldEdgeInsets.right)
        }
    }
下面的错误导致我崩溃

错误:0x0的内存读取失败

有什么解决办法吗

添加


在初始化方法中,当我设置tableview contentInset值时,它可以正常工作,但在初始化后,当我再次更改contentInset时,offsetY发生变化,然后它崩溃。

这似乎是模拟器内部的内存管理问题。尝试重新启动Xcode和模拟器本身。@我尝试重新启动的4kman仍会崩溃,错误与我相同。是否尝试清理项目/清理生成文件夹/清空派生数据?在viewdidload调用之前无法获取tableview contentInset是否确定此时tableview不是零?如果tableView是一个IBOutlet,那么它很可能是一个显式未包装的var,因此如果没有加载nib,它可能会崩溃。尝试可选的展开,让
oldEdgeInsets=self.tableView?.contentInset??UIEdgeInsets.zero
或放置一个保护语句,以避免在tableView为空时访问它。这似乎是模拟器内部的内存管理问题。尝试重新启动Xcode和模拟器本身。@我尝试重新启动的4kman仍会崩溃,错误与我相同。是否尝试清理项目/清理生成文件夹/清空派生数据?在viewdidload调用之前无法获取tableview contentInset是否确定此时tableview不是零?如果tableView是一个IBOutlet,那么它很可能是一个显式未包装的var,因此如果没有加载nib,它可能会崩溃。尝试可选的展开,让
oldEdgeInsets=self.tableView?.contentInset??UIEdgeInsets.zero
或放置一个保护语句,以避免在tableView为空时访问它。