根据UICollectionView和UICollectionViewLayout的类引用,UICollectionView持有对其collectionViewLayout属性的强引用,并且UICollectionViewLayout还拥有对其collectionView属性的强引用。UICollectionView和它的collectionViewLayout之间是否存在保留循环?
在UICollectionView,
@property(nonatomic, strong) UICollectionViewLayout *collectionViewLayout
在UICollectionViewLayout,(强是默认属性属性)。
@property(nonatomic, readonly) UICollectionView *collectionView
在这里看起来像一个保留周期。为什么UICollectionViewLayout不是对collectionView持有一个弱引用呢?
'strong'从不是readonly属性的默认属性,因为只读属性没有任何后援ivar,'strong'或'weak'仅适用于后备ivars。 'UICollectionViewLayout'可能保留其父'UICollectionView'的'weak'引用,并从readonly属性的getter中返回它,从而避免保留周期。 –