我想每分鐘更新UICollectionView
佈局。它在iOS 10中運行良好,但在iOS 9中崩潰(我在iPad 2中測試過)
invalidateLayout
方法使UICollectionView
更新。並調用此方法時崩潰。在iOS 9中調用invalidateLayout方法時應用程序崩潰
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 ----------------
}
錯誤:
Thread 1: EXC_BAD_ACCESS
如果它崩潰,那麼也許你可以包含錯誤信息?還有一個讓它崩潰的函數體? –
@mag_zbc謝謝。我添加了它。 –
和'invalidateLayout'的主體?無論如何,什麼類是你的視圖控制器,還是它是一個'UICollectionViewLayout'子類?你幾乎沒有提供任何東西,任何人都可以幫助你,你至少需要付出最少的努力。 –