Path对象带有许多更改它的方法(moveTo()
,lineTo()
,cubicTo()
,arcTo()
,reset()
等)。
在继续传递对象之前,有没有一种方法可以冻结该对象?
在Objective-c中,CGPath
的界线是什么?
答案 0 :(得分:2)
不。不可变是指一旦对象的构造函数完成执行,该实例将无法更改。
不过,如果确实需要,您可以子类Path
并添加伪不可变性,但是没有内置的机制。
答案 1 :(得分:0)
不理想,但您所描述问题的替代解决方案是使用构造函数复制原始 Path
:
Path copy = new Path(originalPath);
然后,您可以将副本传递给另一个线程,而不必担心他们在您阅读原始 Path
时是否更改了它。