美文网首页
关于sublayer Remove的时候的闪退问题

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

作者: 赵大品 | 来源:发表于2016-07-26 13:04 被阅读542次

    背景

    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;

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

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

    相关文章

      网友评论

          本文标题:关于sublayer Remove的时候的闪退问题

          本文链接:https://www.haomeiwen.com/subject/snxglttx.html