使用分析工具后,我收到以下警告“对象泄露:此执行中稍后未引用分配和存储的对象”
如何删除此警告?
答案 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引用的上一个对象。