【问题标题】:What can cause Core Animation to produce a zombie?什么会导致 Core Animation 产生僵尸?
【发布时间】:2012-12-26 18:50:13
【问题描述】:

我在制作动画时得到了一个僵尸,而僵尸工具并没有多大帮助。这就是它的意思:

发出动画的代码是一个实用程序,它接收一个动画块并将其传递给核心动画:

我猜测它与动画块中受影响的视图有关,该视图在动画期间以某种方式消失。

我这辈子都想不通为什么 Core Animation 会产生僵尸。这是什么原因造成的?

【问题讨论】:

  • 可能不是CoreAnimation,而是你的代码。
  • 您是否检查过完成标志的 NO 值?由于动画没有结束,您可能无意中在代码中做了一些有趣的事情。
  • 我没有传递完成块,并且在动画期间不会删除受影响的视图。
  • 我还发现 Core Animation 在我的应用程序中到处都是僵尸。
  • 为什么不检查参数中的每个对象是否被释放(通过动画之前的任何消息)?不过,它也可能在动画期间被过度释放。

标签: iphone ios memory-management core-animation


【解决方案1】:

我已经多次使用这些 animateWithDuration 视图调用,但从未遇到过僵尸。

在我看来,您正在处理 Core Animation(或 UIView 动画代码)一个自动释放(如果您使用手动引用计数)或非强引用(如果您使用 ARC)的对象。

发布创建动画块的代码,并描述您正在制作动画的视图以及您在动画块中引用的任何对象的生命周期。

选择一个动画块作为开始。您很可能在其他动画中犯了同样的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 2011-03-14
    • 2018-06-06
    • 1970-01-01
    相关资源
    最近更新 更多