Ios 更改tableView.contentInset时应用程序崩溃
将offsetY值设置为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
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为空时访问它。