背景
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;
问题就这么解决了,我已哭晕在厕所。
当然,问题真正的原因我并没有找到,希望知道或者有更好方法的私聊我,谢谢!
网友评论