Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 对象泄漏:分配和存储的对象在此执行过程中稍后不会被引用_Objective C_Ios_Memory Leaks - Fatal编程技术网

Objective c 对象泄漏:分配和存储的对象在此执行过程中稍后不会被引用

Objective c 对象泄漏:分配和存储的对象在此执行过程中稍后不会被引用,objective-c,ios,memory-leaks,Objective C,Ios,Memory Leaks,在使用分析工具后,我收到以下警告“对象泄漏:分配和存储的对象在此执行过程中不会被引用” 如何删除此警告?在IF块中,您在未使用初始分配的情况下重新分配UIWebView。相反,我有这样的东西 UIWebView *videoView = nil; if([self.webViewCache objectForKey:cellId]) { videoView = .....normal code here } else { videoView = [[UIWebView all

在使用分析工具后,我收到以下警告“对象泄漏:分配和存储的对象在此执行过程中不会被引用”


如何删除此警告?

在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
}

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

这是因为您分配了

UIWebView* videoView = [UIWebview alloc] initWithFrame:CGRectMake(0, 0, 104, 104)];
但在if语句中,您将这个videoView与其他内容一起分配,因此您将丢失指向初始分配对象的指针

将您的声明更改为

UIWebView* videoView = nil;
然后在你的房间里

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

这是我首选的解决方案,不是唯一的,而是最整洁的;这只会让人难以阅读。至少花点时间复制粘贴它。你可以用评论来表示你收到通知的那一行。我认为OP用截图来显示箭头,因为对于一个有生以来第一次看到箭头的人来说,箭头是一些奇怪的东西。这个问题的截图对我来说很有用,可以确保我们面临同样的问题。