2011-06-13 27 views
0

我的ipad应用程序正在接收1级内存警告,因此我在Xcode 4中运行了内存泄漏分析器。当然,当我移动一个特定的滑块时,它会导致泄漏。再次移动它,另一个泄漏和泄漏的字节升级。从Xcode 4 Profiler发现泄漏

我想知道如果Xcode 4提供了一个简单的方法来具体找出哪些对象泄漏。我从滑块运动中查看了方法;每次我使用alloc/init,然后我释放它。这将是很好的知道Xcode发现泄漏的地方,因为我自己找不到它。

Xcode 4文档引用了很多工具。但是,我不知道这个文档是不是从Xcode 3更新的,因为这些工具不在文档中提到的菜单中。

滑块操作是:

-(IBAction) sensitivity:(UISlider *)slider{ 

self.grid.sensitivity=slider.value; 
[self.grid setNeedsDisplay]; 
} 

这本身并不意味着内存泄漏。但是,“setNeedsDisplay”方法相当长,不会在第一次运行时创建泄漏,那么为什么它会在第二次运行时创建泄漏?该代码中的所有inits/alloc被释放(只有3个对象被创建和释放)。

+1

在这种情况下,我会说它的相当明显的东西在你的滑块或者你的滑块控制着什么,如果你把这些代码连接起来,我们可以帮助你做些具体的事情,就仪器而言......看其他答案。 – 2011-06-13 14:55:54

+0

我将代码添加到问题中。 – johnbakers 2011-06-13 15:04:02

回答

1

我发现从菜单运行Build/Build and Analyze很有用。它并没有捕捉到所有的事情,并且标记了一些虚假的警报,但这是一个很好的(而且很容易)的地方,可以开始进行自动化泄漏检测。

+0

在Xcode 4的产品菜单下有一个简单的“分析”选项;这是你的意思吗?当我运行它时,发生的事情并不多。它实际上并没有在我的设备上运行我的应用程序,也没有任何分析出现在Xcode的任何地方,以表明它找到或分析了任何东西 – johnbakers 2011-06-13 15:01:35

+0

@ansdrewjs:不确定,我在这台机器上只有Xcode 3.2.5。在我的菜单下它是Build /下的,这个选项叫做“Build and Analyze”(快捷键shift-command-A)。您必须连接一个设备才能运行它。 – PengOne 2011-06-13 15:04:37

+0

你在哪里看到分析结果?我运行了似乎是分析的东西,程序似乎没有做任何事情。 – johnbakers 2011-06-13 15:27:41