пожалуйста, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE

Несмотря на просмотр более 3 постов (сделанных в 2015 году) об этой проблеме, не решил мой.

Когда я запускаю простой код для рисования линии с использованием UIBezierPath, программа возвращает мне следующее:

: CGContextSetStrokeColorWithColor: неверный контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextSetFillColorWithColor: недопустимый контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextSaveGState: неверный контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextSetLineWidth: неверный контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextSetLineJoin: неверный контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextSetLineCap: недопустимый контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextSetMiterLimit: недопустимый контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextSetFlatness: недопустимый контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextAddPath: недопустимый контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextDrawPath: недопустимый контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextRestoreGState: неверный контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

@interface line : UIView
UIBezierPath *myPath;
.........
@implementation
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches]anyObject];
CGPoint touchLocation = [touch locationInView:self];
myPath = [UIBezierPath bezierPath];
[myPath moveToPoint:touchLocation];
}
- (void) touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches]anyObject];
CGPoint touchLocation = [touch locationInView:self];
[myPath addLineToPoint:touchLocation];
[[UIColor blackColor]setStroke];
[[UIColor greenColor]setFill];
[myPath stroke];
}

Если бы я рисовал, используя drawRect

- (void) drawRect:(CGRect)rect {
....
}

Ошибка не появится. Мне было интересно, если я получаю эти ошибки, потому чтоtouchesBegan а такжеtouchesMoved не можете выполнить рисование?

В какао (OS X) я привык использоватьsetNeedsDisplay, но это не существует в прикосновении какао.

Все, что я спрашиваю, есть ли в любом случае, чтобы удалить эти ошибки или есть другой способ нарисоватьUIBezierPath во время выполнения.

Ответы на вопрос(1)

Ваш ответ на вопрос