当 UIView dealloc 仍然留下参考时删除所有当前动画
Posted
技术标签:
【中文标题】当 UIView dealloc 仍然留下参考时删除所有当前动画【英文标题】:Removing all current animations when UIView dealloc still leaving reference 【发布时间】:2011-04-08 17:39:27 【问题描述】:我有一个 UIView 子类,它在 ios 项目中经常被分配和释放。我添加了[self.layer removeAllAnimations];
以尝试在销毁对象之前删除所有动画。偶尔,我还是会收到-[ClassName animationDidStop:finished:]: message sent to deallocated instance
。现在,不应该删除动画会杀死该委托并阻止它尝试调用 animationDidStop 吗?
【问题讨论】:
【参考方案1】:请查看"Will sending -removeAllAnimations to a layer also propagate to all it's sublayers?",这可能是您问题的答案。
【讨论】:
我尝试这样做并将每一层的委托设置为 nil,但我仍然收到相同的错误。我还尝试循环和删除子视图,但没有成功。 这是否也发生在设备上? 我一直在设备上进行测试。确切地说是 iPad(第 1 代)。 for (CALayer *layer in [[imageLayer.sublayers copy] autorelease]) [layer removeAllAnimations]; [层 removeFromSuperlayer];层=无;以上是关于当 UIView dealloc 仍然留下参考时删除所有当前动画的主要内容,如果未能解决你的问题,请参考以下文章
Iphone:定制的 UIView 是不是需要 dealloc
UIPopoverController:在popover仍然可见时达到了dealloc
添加了 CAGradientLayer,在我的 UIView dealloc 中得到了这个:[CALayer release]: message sent to deallocated instanc