2011-02-05 148 views
0

總共Noob在這裏首次在這個論壇上定位。這段代碼爲什麼會產生泄漏?

我正在寫我的第一個iPhone應用程序。有問題的代碼是在cellForRowAtIndexPath方法中填充我的UITableViewCell。

當我運行與泄漏儀器打開我的應用程序,泄漏部分指向我的代碼的這一部分。我已閱讀關於本網站上各種書籍和帖子的內存管理,根據我的知識,下面的代碼似乎符合所需的分配/版本編碼指導。但是,泄漏工具仍指向此特定部分。我根本不明白爲什麼。

您的幫助,將不勝感激。

ModelClass * myModelData = [myTempDataArray objectAtIndex:[indexPath row]]; 

NSString * myURL = [[NSString alloc] initWithFormat:@"%@/images/%@", SERVER_URL, [myModelData publisherLogoFileName]]; 
NSURL * imageURL = [[NSURL alloc] initWithString:myURL]; 
[myURL release]; 
[[cell productImageM] setUrl:imageURL]; 
[imageURL release]; 
[[self objMan] manage:[cell productImageM]]; 

return cell; 
+0

堆棧溢出不完全是一個論壇:) – zneak 2011-02-05 19:45:47

+0

@zneak,論壇更容易說論壇,Digg-wiki-blog網站 – 2011-02-05 19:50:59

回答

1

泄漏工具不會告訴您應該釋放對象的位置,它會告訴您它在哪裏分配。

這段代碼看起來不錯;你擁有足夠長的myURL來創建imageURL然後釋放它。您將imageURL提供給單元的productImageM,然後釋放它。然後你對不屬於你的物體進行一些操作。

根據猜測,由[cell productImageM]返回的對象類型保留其Url屬性,並隨後泄漏它。

0

您可以嘗試使用Build菜單中的Build & Analyze選項。一般來說,它應該表明泄漏的確切線。