2009-11-21 62 views
4

我正在使用coverFlow視圖爲iPhone開發應用程序,當應用程序正在構建它正在使用UIView的卡以添加標籤和其他內容時。然後,我轉換成的UIView使用的UIImage下面的代碼:將UIview轉換爲導致內存泄漏的UIimage

UIGraphicsBeginImageContext(imageView.bounds.size); 
[imageView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

// returning the UIImage 
return viewImage; 

我每次重繪的CoverFlow我有一個巨大的內存分配增量,即使我的dealloc我的CoverFlow認爲,從來沒有下降。

我認爲內存泄漏是在我添加的代碼中,您怎麼看?

+2

我已經經歷了同樣的問題,開闢了雷達與蘋果。它作爲一個副本關閉,所以你並不孤單。 – 2010-02-26 22:16:12

+0

你能解決這個問題嗎?我遇到了同樣的問題。 – 2010-05-06 23:44:32

+0

我也面臨同樣的問題。請幫助我。我們如何解決這個問題? – arundevma 2012-10-22 12:20:07

回答

2

您提供的代碼片段中沒有明顯的內存泄漏。由於UIGraphicsBeginImageContext(),該操作無法在後臺線程上執行,所以您應該有一個NSAutoreleasePool(返回值UIGraphicsGetImageFromCurrentContext()是自動發佈的)。如果沒有進一步的信息,就不可能知道內存泄漏的位置 - 我建議你查看最終擁有viewImage對象的任何對象,並確保在保留它的情況下正確釋放UIImage。