根据UICollectionView和UICollectionViewLayout的类引用,UICollectionView对它的collectionViewLayout属性具有很强的引用,而UICollectionViewLayout对它的collectionView属性也具有很强的引用。
在UICollectionView中,
@property(nonatomic, strong) UICollectionViewLayout *collectionViewLayout
在UICollectionViewLayout中,(strong是默认属性)。
@property(nonatomic, readonly) UICollectionView *collectionView
在这里看起来像一个保留周期。为什么UICollectionViewLayout不对collectionView持有弱引用?
最佳答案
在UICollectionViewLayout中,(strong是默认属性)。
@property(nonatomic, readonly) UICollectionView *collectionView
它是默认值,但是
readonly
属性没有存储,它只是一个吸气剂。在内部,布局必须对集合视图具有弱引用。我对其实际源代码一无所知,但看起来可能像这样:@interface UICollectionViewLayout ()
@property(nonatomic, weak, readwrite) UICollectionView *collectionView;
@end
但是,如果您运行Instruments并实际上发现了泄漏,则应该提起雷达,因为这绝对是我书中的错误。
关于ios - UICollectionView和collectionViewLayout之间是否存在保留周期?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39007587/