2012-01-24 1 views
0

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

enter image description here

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

+1

Пожалуйста, не используйте скриншоты кода; что просто затрудняет чтение. По крайней мере, найдите время, чтобы скопировать его. Вы можете указать строку, по которой вы получаете уведомление с комментарием. –

+0

Я думаю, что OP использовал скриншоты, чтобы показать стрелки, поскольку они - некоторые странные вещи для человека, который видит их впервые в своей жизни. И скриншот в этом вопросе был полезен для меня, чтобы я убедился, что мы сталкиваемся с той же проблемой. –

ответ

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 
} 
+0

Это мое предпочтительное решение, а не единственное, но самое аккуратное. –

0

Перед назначением нового значения необходимо вывести предыдущий объект, на который ссылается видеовизор.

2

Это потому, что вы размещаете свой

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

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

Изменить декларацию

UIWebView* videoView = nil; 

Затем в еще

videoView = [UIWebview alloc] initWithFrame:CGRectMake(0, 0, 104, 104)]; 
Смежные вопросы