CollectionView выполняет обновление обновлений BAD_ACCESS | бета-версия iOS 15 | Xcode 13

#swift #exc-bad-access #xcode13 #performbatchupdates

Вопрос:

Я тестирую свое приложение в бета-версии 5 Xcode 13 на симуляторе iOS 15. Существует представление коллекции, которое вызывает EXC_BADACCESS (code=2, address=0x7ffee930ef38) ошибку при performBatchUpdates вызове. Этот метод отлично работает в более низких версиях (например, iOS 14.2). Я попытался собрать больше информации об ошибке с помощью диагностики схемы (дезинфицирующее средство для адресов, дезинфицирующее средство для потоков, зомби-объекты и т. Д.) И дважды проверил, что я использую слабые ключевые слова, где это уместно, но безуспешно.

У кого-нибудь еще есть подобная проблема с тестированием iOS 15 в Xcode 13? Возможно, это просто бета-версия? Вот несколько примеров кода:

 var heightConstraint: NSLayoutConstraint!
let loadingHeight: CGFloat = 100
let interItemSpacing: CGFloat = 8

func reloadCollectionView() {
    collectionView.reloadData()
    UIView.performWithoutAnimation { [weak self] in
        self?.collectionView.performBatchUpdates(nil, completion: { _ in
            self?.collectionView.collectionViewLayout.invalidateLayout()
            self?.updateHeight
        }
    }
}

func updateHeight() {
    if loading {
        heightConstraint.constant = loadingHeight
    } else {
        heightConstraint.constant = collectionView.collectionViewLayout.collectionViewContentSize.height - interItemSpacing
    }
}