关于sublayer Remove的时候的闪退问题

背景

app里面用到了折线功能,所以牵扯到了layer的问题,之前运行一直没有问题,但是在最近一次,一个账号的数据比较复杂,页面(tableView)在加载后,向下稍微滑动便出现崩溃。

代码:

[_lineChart.myScrollView.layer.sublayers makeObjectsPerformSelector:@selector(removeFromSuperlayer)];

错误原因

Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collectionwas<CALayerArray:0x1f092260> mutated while being enumerated.

具体怎么导致的,并不知道,尝试了延迟线程加载、抛出异常(会出现绘图混乱)、循环移除等方法,然并卵。

解决方法

突然在今天早上灵机一动,为什么我不能直接把sublayer数组置空?然后代码就改成了这样:

_lineChart.myScrollView.layer.sublayers = nil;

问题就这么解决了,我已哭晕在厕所。

当然,问题真正的原因我并没有找到,希望知道或者有更好方法的私聊我,谢谢!

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

推荐阅读更多精彩内容

  • 转载:http://www.jianshu.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 6,288评论 0 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,861评论 25 708
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • 你嘤嘤地 吮吸 雨还不停 打着我的馒头 我的脸 啪 你死了 我的血 看着你 多可怜
    丌北阅读 265评论 0 0
  • 添加插件: 然后使用maven 编译,就可以编译空白文件夹。
    黑女2008阅读 1,384评论 0 1