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

背景

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

代码:

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

错误原因

Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collectionwas mutated while being enumerated.

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

解决方法

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

_lineChart.myScrollView.layer.sublayers = nil;

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

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

你可能感兴趣的:(关于sublayer Remove的时候的闪退问题)