UICollectionView dataSource is not set 崩溃分析

最近很多bug崩溃统计有很多
UICollectionView dataSource is not set


image.png

网上也有很多类似的解答。最终结合自己的代码和架构,分析出了问题所在:

我们的在利用UICollectionView布局时都是在 UIViewController 创建一个UICollectionView成员对象,利用其代理方法进行布局控制和赋值操作。

但是我们在很多实际的Controller中,由于业务代码的不规范,造成很多控制存在内存泄漏的问题,造成Controller 在dismiss 或 pop 操作后不能销毁。

而我们的代码中很一个登陆和退出登陆的通知,在触发该通知后,会重新刷新布局和数据,需要对UICollectionView 进行 reloadData 操作。

这样就造成了UICollectionView dataSource is not set 崩溃。

OC 的UI布局在释放控制器 是 从父类释放,一层一层最终释放到添加的子类对象中,只要子类对象有内存泄漏问题,最终父类也不会释放。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,160评论 1 32
  • iOS流布局UICollectionView系列一——初识与简单使用UICollectionView 一、简介 U...
    我是啊梁阅读 10,525评论 3 10
  • 骄傲一点说,写一千字,不难,难的是这一千字写什么,怎么对得起这一千字。 于我总有一种一瓶子不满半瓶子咣当的心理...
    飘在远方阅读 151评论 0 0
  • 你今天点击进来,应该是因为下面两个字吸引了你 很多人告诉我,现在互联网上的保险产品比传统保险公司的便宜多了,甚至以...
    屠晓斐阅读 572评论 0 1
  • Apache(读音:阿帕奇) Apache与IIS是两种最受欢迎的web服务器软件。 Apache运行的操作系统通...
    一只dororo阅读 6,218评论 0 1