泄漏的对象:此执行中稍后不会引用分配和存储的对象

时间:2012-01-24 14:11:54

标签: objective-c ios memory-leaks

使用分析工具后,我收到以下警告“对象泄露:此执行中稍后未引用分配和存储的对象”

enter image description here

如何删除此警告?

3 个答案:

答案 0 :(得分:10)

在IF块中,您可以重新分配UIWebView,而无需使用初始分配。而是有类似的东西......

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
}

答案 1 :(得分: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)];

答案 2 :(得分:0)

在分配新值之前,您必须释放videoView引用的上一个对象。