Сделать независимую копию UIBezierPath?

У меня есть сложная UIBezierCurve, которую мне нужно нарисовать один раз с некоторыми конкретными параметрами линии, а затем снова нарисовать ее как наложение с другими параметрами линии, но также мне нужно, чтобы последняя часть кривой была немного короче, чем в предыдущей.

Для этого я хочу создать кривую по addLineToPoint:, moveToPoint:до последней части, затем сделать копию этой кривой и добавить конечные сегменты линии по-разному в исходной и скопированной кривых. А потом я обводил оригинальную кривую, а скопированную.

Проблема в том, что это не работает, как я ожидал. Я создаю копию кривой по:

UIBezierPath* copyCurve = [originalCurve copy];

И рисунок, который я после этого делаю в originalCurve, применяется и к copyCurve, так что я не могу сделать независимый рисунок ни для одной из этих кривых.

В чем причина такой связи между оригиналом и копией и как от нее избавиться?

РЕДАКТИРОВАТЬ 1 :Решение, которое я нашел, состоит в том, чтобы создать копию следующим образом:

UIBezierPath* copyCurve=[UIBezierPath bezierPathWithCGPath:CGPathCreateMutableCopy(originalCurve.CGPath)];

Поскольку это работает правильно, возможно, проблема в неизменности копии, которую я получаю с помощью

[originalCurve copy]
8
задан BartoNaz 13 July 2012 в 14:35
поделиться