我们是否总是需要在持久 属性 中保留动画?

Did we always need to retain an animation in a persistent property?

目前我正在阅读 Matt Neuburg 的一本非常有趣的书。但我停留在这一刻:

In the simplest case, you’ll just launch the animation and stand back, as I demonstrated earlier:

let anim = UIViewPropertyAnimator(duration: 1, curve: .linear) {
    self.v.backgroundColor = .red    
}    
 anim.startAnimation()

In that code, the UIViewPropertyAnimator object anim is instantiated as a local variable, and we are not retaining it in a persistent property; yet the animation works because the animation server retains it.

当我们以上述方式使用动画时,是否需要将动画永久保留 属性?如果我们不将动画保留在持久性 属性 中,为什么动画(在其他情况下似乎)不应该工作?我想我不明白还有谁读过这本书?

Matt 的观点是您无需保留对它的引用即可完成动画。他并不是说你不能保留推荐信,只是说你没有必要。

你问:

Did we ever need to retaining an animation in a persistent property when we using it in [aforementioned] way?

不,你不需要“保留”它来继续动画。

您可能会问为什么要保留引用:如果您想在动画开始后暂停或停止、擦除或执行其他操作,您可以这样做。

最重要的是,如果您出于其他原因需要参考,没关系,保留参考。否则,只需将其设为局部变量并启动它即可。

Why animation (it seems in other cases) should not work if we do not retain it in a persistent property?

他不是这么说的。他说的恰恰相反,即你不必为动画继续而保留对它的强引用。如果您出于其他原因需要它,请保留参考,但不仅仅是为了确保动画继续。