【问题标题】:Animations make my app crash: How can I remove them?动画使我的应用程序崩溃:如何删除它们?
【发布时间】:2010-03-18 15:58:08
【问题描述】:

在我的应用程序中,我根据需要创建视图控制器对象。当视图控制器消失时,我通过在其视图上调用 -removeFromSuperview 来摆脱它,然后将保留属性设置为 nil。

这样我的应用程序一直使用非常低的内存。但是有一个问题:我在一些视图控制器中有大量动画,每个动画总是有一个动画委托,它是 self.现在发生的事情是:当有动画正在运行并且我放下视图控制器时,它就会消失 - 在某个时候,当其中一个动画完成时,它似乎会崩溃。

所以问题是:如何从视图及其所有子视图中删除任何正在运行的动画?

【问题讨论】:

  • 我认为你问错了问题。如果应用程序在动画完成时崩溃,您应该找出崩溃的原因,而不仅仅是如何删除动画。听起来这里较低级别有问题。

标签: iphone cocoa-touch uikit core-animation


【解决方案1】:

同意。关于如何添加/删除子视图以及如何保留/释放它可能会有些混乱。确保您遵循以下准则:

// To add
AView * aSubView = [[AView alloc] init];
[aContainerView addSubview:aSubView];
[aSubView release]; // aSubView is retained by aContainerView

...以及以后

// To remove
[aSubView removeFromSuperview]; // and nothing else!

不要不要这样做:

[self removeFromSuperview]; // Don't cut the branch on which you are sitting

(你已经知道了!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-14
    • 2012-03-04
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    相关资源
    最近更新 更多