Это была ошибка с моей стороны, но для других здесь я выложу ответ.
Мне нужно было выполнить мой код, когда слайдер закончил перетаскивание / прокрутку. Чтобы добиться этого, у меня было
func scrollViewDidScroll(_ scrollView: UIScrollView) {
NSObject.cancelPreviousPerformRequests(withTarget: self)
perform(#selector(UIScrollViewDelegate.scrollViewDidEndScrollingAnimation), with: nil, afterDelay: 0.3)
}
Проблема была в строке
perform(#selector(UIScrollViewDelegate.scrollViewDidEndScrollingAnimation), with: nil, afterDelay: 0.3)
Вместо того, чтобы передавать ноль, я написал
perform(#selector(UIScrollViewDelegate.scrollViewDidEndScrollingAnimation), with: scrollView afterDelay: 0.3)
, и это решило ее. Я больше не получал scrollView
<uninitialized>
, а мой
if let cv = scrollView as? UICollectionView {
}
работал нормально.