iOS: CGContextStrokePath(context) аварийно завершает работу с EXC_BAD_ACCESS в iOS 12
Я пытаюсь нарисовать подпись, используя 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);
}
}