Объект просочился: объект, выделенный и сохраненный, не упоминается позже в этом выполнении - PullRequest
0 голосов
/ 24 января 2012

После использования инструмента анализа я получаю следующее предупреждение: «Утечка объекта: объект, выделенный и сохраненный, не упоминается позже в этом выполнении»

enter image description here

Как удалитьэто предупреждение?

Ответы [ 3 ]

10 голосов
/ 24 января 2012

Внутри блока 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
}
2 голосов
/ 24 января 2012

Это потому, что вы выделяете

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

но затем в вашем операторе if вы присваиваете этому videoView что-то еще, следовательно, вы теряете указатель на начальный выделенный объект.

Измените вашу декларацию на

UIWebView* videoView = nil;

тогда в вашем другом

videoView = [UIWebview alloc] initWithFrame:CGRectMake(0, 0, 104, 104)];
0 голосов
/ 24 января 2012

Вы должны освободить предыдущий объект, на который ссылается videoView, прежде чем присваивать новое значение.

...