2011-06-13 26 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