我想每分钟更新一次UICollectionView
布局。它在iOS 10中运行良好但在iOS 9中崩溃(我在iPad 2中测试过)
invalidateLayout
方法会使UICollectionView
更新。并且在调用此方法时崩溃。
override init() {
super.init()
initializeMinuteTick()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
deinit {
minuteTimer?.invalidate()
}
private func initializeMinuteTick() {
guard let validDate = Date().addMinute(num: 1) else { return }
minuteTimer = Timer(fireAt: validDate, interval: TimeInterval(60), target: self, selector: #selector(minuteTick), userInfo: nil, repeats: true)
if let minuteTimer = minuteTimer {
RunLoop.current.add(minuteTimer, forMode: .defaultRunLoopMode)
}
}
func minuteTick() {
cachedCurrentTimeComponents.removeAll()
// CRASH ----------------
invalidateLayout()
// CRASH ----------------
}
错误:
主题1:EXC_BAD_ACCESS
答案 0 :(得分:0)
尝试在reloadData()
上致电collectionView
。在调用重新加载函数之前,还要确保dataSource
的{{1}}已经填充了数据(也许有一个地方强制解包值?)。