iOS - Logging only once for UICollectionViewFlowLayout cache mismatched frame

前言

最近在使用UICollectionView制作横向滚动缩放例子,在技术缩放算法中需要用到layoutAttributesForElementsInRect,代码使用方式如下:

1
NSArray *array = [super layoutAttributesForElementsInRect:rect];

很不幸,出现了警告,警告内容为

Logging only once for UICollectionViewFlowLayout cache mismatched frame

This is likely occurring because the flow layout subclass CXSlideCollectionViewFlowLayout is modifying attributes returned by UICollectionViewFlowLayout without copying them

从上文可以看出,警告告诉我们,UICollectionViewFlowLayout的返回对象,你需要对其进行copy操作,于是将代码改成:

1
NSArray *array = [[NSArray alloc] initWithArray:[super layoutAttributesForElementsInRect:rect] copyItems:YES];

警告就消除了。

Happy reading!


ios内存泄漏的那些事

从开始从事IOS开发以来,内存泄漏一直是自己需要很小心的处理的问题,因为这个东西一不小心就会出现,比较头疼。而且自己没有解决,其他人很少会帮你解决和排查。除非工程大面积优化,自己总结和参考了一些,内容相对比较常见,请大家指教:

,