UICollectionViewLayout

UICollectionViewLayout

根据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/

10-11 02:31