According to class references of UICollectionView and UICollectionViewLayout, UICollectionView holds a strong reference to its collectionViewLayout property, and UICollectionViewLayout also holds a strong reference to its collectionView property.
In UICollectionView,
@property(nonatomic, strong) UICollectionViewLayout *collectionViewLayout
In UICollectionViewLayout, (strong is a default property attribute).
@property(nonatomic, readonly) UICollectionView *collectionView
Looks like a retain cycle here. Why doesn't UICollectionViewLayout hold a weak reference to collectionView instead?