我正在编写自定义动画,我怀疑我有内存泄漏,但我不确定。每次我运行给定的动画内存都会上升一点,但它并没有下降。为了确保,我做了一个测试:
NSLog(@"%@", self.weakanim);
// The animation collection to run
HyAnimationCollection * collection = [[HyAnimationCollection alloc] init];
self.weakanim = collection;
首先记录nil
然后它总是记录一个地址。所以这里有两个指标:
weakanim
声明为weak
只是为了查看之前的动画集是否正在发布,但同样的问题仍然存在:ARC是否还没有发布 ?答案 0 :(得分:2)
ARC不像JVM那样工作。你得到的最接近的是它使用"自动释放池。"在这种情况下,在运行循环结束之前,对象不会相关。如果您可以看到动画正在运行,那么运行循环很可能正在运行,并且应该定期刷新池。
显示是否存在泄漏的更好方法是在dealloc
类的HyAnimationCollection
方法中放置断点。如果你的其余调查是正确的,我的猜测是它从未被调用过。您可能在 代码中有一个保留周期。