Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS 9中调用invalidateLayout方法时应用程序崩溃_Ios_Swift_Uicollectionview - Fatal编程技术网

在iOS 9中调用invalidateLayout方法时应用程序崩溃

在iOS 9中调用invalidateLayout方法时应用程序崩溃,ios,swift,uicollectionview,Ios,Swift,Uicollectionview,我想每分钟更新UICollectionViewlayout。它在iOS 10中运行良好,但在iOS 9中崩溃(我在iPad2中进行了测试) invalidateLayout方法使UICollectionView更新。调用此方法时会崩溃 override init() { super.init() initializeMinuteTick() } required init?(coder aDecoder: NSCoder) {

我想每分钟更新
UICollectionView
layout。它在iOS 10中运行良好,但在iOS 9中崩溃(我在iPad2中进行了测试)
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\u错误访问


尝试在
collectionView
上调用
reloadData()
。在调用重新加载函数之前,还要确保
collectionView
dataSource
已经填充了数据(可能存在强制展开值的位置?)。

尝试在
collectionView
上调用
reloadData()
。在调用重新加载函数之前,还要确保
collectionView
dataSource
已经填充了数据(可能存在强制展开值的位置?)。

如果它崩溃,那么您是否可以包含错误消息?还有使它崩溃的函数体?@mag_zbc谢谢。我添加了它。
invalidateLayout
?这到底是什么类,它是您的视图控制器还是
UICollectionViewLayout
子类?您几乎没有为任何人提供任何帮助,您至少需要付出最小的努力。@mag_zbc谢谢,这是UICollectionViewLayout方法之一。如果它崩溃,您是否可以包含错误消息?还有使它崩溃的函数体?@mag_zbc谢谢。我添加了它。
invalidateLayout
?这到底是什么类,它是您的视图控制器还是
UICollectionViewLayout
子类?您几乎没有为任何人提供任何帮助,您至少需要付出最小的努力。@mag_zbc谢谢,这是UICollectionViewLayout方法之一。谢谢。当我调用“collectionView?.reloadData()”时,它在重新加载行崩溃。但是如果dataSource还没有准备好,为什么它可以在iOS 10中工作呢?谢谢。当我调用“collectionView?.reloadData()”时,它在重新加载行崩溃。但如果数据源还没有准备好,为什么它可以在iOS 10中工作?