iOS: CGContextStrokePath (context) аварийно завершает работу с EXC_BAD_ACCESS в iOS 12 - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь нарисовать подпись, используя CALayer с CGContextStrokePath(context), но происходит сбой с хитрым падением с ошибкой ниже только в iOS 12:

malloc: Неверная контрольная сумма для освобожденного объекта 0x1196538c8:вероятно, изменен после освобождения.Поврежденное значение: 0x4069e00000000000 (899,0x17190b000) malloc: *** установить точку останова в malloc_error_break для отладки

Фрагмент кода:

- (void)drawLayer:(CATiledLayer *)layer inContext:(CGContextRef)contx {
    if (layer == canvasLayer) {
        //we don't want this to fire after the background layer update
        //and after the path has been released
        if (!touching) return;
        CGContextAddPath(contx, path);
        CGContextSetLineWidth(contx, 7.0f);
        CGContextStrokePath(contx);
    }
    else if (layer == bckLayer) {
        CGContextSaveGState(contx);
        CGContextTranslateCTM(contx, 0, backgroundLayer.bounds.size.height);
        CGContextScaleCTM(contx, 1.0, -1.0);
        CGImageRef ref = cacheImage.CGImage;
        CGContextDrawImage(contx, backgroundLayer.bounds, ref);
        CGContextRestoreGState(ctx);
    }
}
...