context.Path 返回零

context.Path returning nil

我有以下代码绘制到 CALayer 子类的上下文中。

override func draw(in con: CGContext) {

    //  super.draw(in: con) //with/out makes no diff

      let endAng = CGFloat(Float.pi * 2) 

      con.addArc(center: position,
                 radius: 30,
                 startAngle: 0,
                 endAngle: endAng,
                 clockwise: false)
      con.setStrokeColor(UIColor.red.cgColor)
      con.setLineWidth(CGFloat(thickness / 5))
      con.strokePath()


      self.path = con.path

在最后一行中,我试图保存路径,以便在用户进入另一种模式时使用它进行更多绘图。但是在赋值之后 self.path == nil

文档简单地说:

Returns a path object built from the current path information in a graphics context.

为什么,如果我只是将路径组件添加到我的 CALayer 子类的上下文中,路径 getter 返回的是 nil 路径?这里的文档没有帮我调试。

所以,所有像 addArc 这样的绘图函数都说它们将这些形状添加到当前路径(我确实看到它们在我的图层中呈现),但是在我查询当前上下文的下一行路径,它是零吗?

The documentation for the strokePath function 说:

The current path is cleared as a side effect of calling this function.

在画路径之前将您的电话移至 con.path