2012-01-24 14 views
0

使用分析工具後,我收到以下警告「對象泄露:對象分配和存儲未在此執行以後引用」對象泄露:對象分配和存儲未在此執行以後引用

enter image description here

如何刪除此警告?

+1

請不要使用的代碼截圖;這使得它很難閱讀。至少花時間複製粘貼它。您可以在註釋中註明您收到通知的那一行。 –

+0

我認爲OP使用屏幕截圖來顯示箭頭,因爲它們對於在他的生活中首次見到他們的人來說是一些奇怪的事情。在這個問題中的屏幕截圖對我來說非常有用,可以確保我們面臨同樣的問題。 –

回答

10

在IF塊內部,您將重新分配您的UIWebView,而無需使用初始分配的EVER。相反,有這樣的事情......

UIWebView *videoView = nil; 

if([self.webViewCache objectForKey:cellId]) { 
    videoView = .....normal code here 
} else { 
    videoView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 104, 104)]; 
    .... normal code here 
} 
+0

這是我首選的解決方案,不是唯一的解決方案,而是最整潔的解決方案。 –

0

你必須釋放由videoView引用以前的對象,分配一個新值之前。

2

這是因爲您分配

UIWebView* videoView = [UIWebview alloc] initWithFrame:CGRectMake(0, 0, 104, 104)]; 

但隨後在你的if語句,您分配這個videoView別的東西,所以你失去指針初始分配的對象。

你的宣言更改爲

UIWebView* videoView = nil; 

然後在其他

videoView = [UIWebview alloc] initWithFrame:CGRectMake(0, 0, 104, 104)];