在我的应用程序中,我在我的视图中有随机对象,我曾经想过我通过[NSMutableArray replaceObjectAtIndex:index withObject:newObject]删除了 但事实证明,在我使alpha = 0.5之后,那些被替换的旧物体仍然存在。由于我使用带有ARC的新xcode 4,我无法检查这些对象是否未能解除dealloc或其他内容。 那么,xcode 4中是否有任何技术或命令(是新的)可以帮助进行这种调试?
另外,在xcode 4中,会从视图中删除一个对象删除吗?我使用[object.view removeFromSuperView]将它们从视图中删除,但我不知道它们是否仍然存在于其他地方,导致内存泄漏。
答案 0 :(得分:0)
在该领域获得帮助的最佳方法是使用Instruments(特别是分配工具)来“调试”哪些对象仍处于活动状态,以及它们的调用堆栈是什么。它需要一些摆弄,但它是一套强大的工具。
答案 1 :(得分:0)
我同意使用Instruments(/ Developer / Applications / Instruments)是可行的方法,但您也可以在代码中设置断点。请参阅“Xcode 4 Transition Guide”中的“调试和分析代码”部分。我还建议使用视图的属性子视图迭代超级视图的子视图,如下所示。
for ( UIView *view in self.view.subviews) {
// Check your objects here.
}
关于内存管理,如果你使用new,alloc,mutablecopy或copy你拥有它,需要处理对象的内存分配和释放。您可以使用auto release或在dealloc方法中释放它。 uiview方法removeFromSuperView将释放你的对象。
希望有所帮助,脆弱的