2012-12-01 53 views
1

我是一個初學者,我發現這個警告上運行Xcode的「分析」後,這裏的對象的潛在泄漏「:Xcode中分析說:

IphoneFeatureImageDetailViewController *img = [[IphoneFeatureImageDetailViewController alloc] initWithNibName:@"IphoneFeatureImageDetailViewController" bundle:nil];  
img.imagesArray = [heroArray copy]; 
img.index = imgButton.tag; // AT THIS LINE IT SAYS POTENTIAL MEMORY LEAK 
[self.navigationController pushViewController:img animated:YES]; 
[img release]; 

請點我在正確的方向!

+0

什麼是imgButton.tag? – Pablosproject

+0

在我看來,你可以忽略這一點,因爲你只是將一個整數值(img上的索引)賦值給另一個「整數」值(我猜是'NSButton'的'tag')。 – tamasgal

+0

imgButton是從方法簽名 - (無效)imgDetail:(UIButton *)imgButton – shaikh

回答

8

分析命令經常在之後標記行問題,因爲這是代碼中知道泄漏發生的地方。在你的情況下,它可能是它報告的imagesArray。如果這是一個retain屬性,那麼將有一個保留copy和另一個分配,這是多於需要。

我懷疑...

img.imagesArray = [[heroArray copy] autorelease]; 

...將它清除掉。或者你可以切換到ARC,整個問題就會消失。 :)

+0

謝謝你先生,把autorelease在該行解決了我的問題:) – shaikh

+0

「分析命令經常標誌線後的問題」真棒一塊信息。 – shaikh