一段时间后从超级层删除应用程序崩溃

use*_*007 1 core-animation objective-c calayer ios

您好,我正在CAShapeLayerCGPath.我正在绘制拼图并添加到scrollview.I put reload按钮来检查性能.当我重新加载时,我将删除所有以前的图层scrollview.一段时间后它崩溃了.

Zombie向我展示了删除图层的原因,这就是问题所在.代码中有什么问题吗?这里是 :

NSArray* layerArray = [[self.scrollView.layer sublayers]copy];

    for (int i = 0; i < layerArray.count; i++) {
        A3JigsawView* aJigsawView = [layerArray objectAtIndex:i];
        [aJigsawView removeFromSuperlayer];
    }
    self.scrollView.layer.sublayers = nil;

    prevWidth = 0;
    prevHeight = 0;
Run Code Online (Sandbox Code Playgroud)

请帮帮我.谢谢你.

Nes*_*tor 5

是的self.scrollView.layer.sublayers = nil.不加选择地删除所有子图层会导致iOS 7中出现严重崩溃,这可能会在程序执行后发生.我已经使用rootLayer.sublayers = nil和两个彻底测试了这个[rootLayer.sublayers makeObjectsPerformSelector:@selector(removeFromSuperlayer)].必须有一个系统创建的图层搞砸了.

您必须保留自己的图层数组并自行删除它们:

[myArrayOfLayersIAddedMyself makeObjectsPerformSelector:@selector(removeFromSuperlayer)];
Run Code Online (Sandbox Code Playgroud)