2012-05-25 3 views
4

UIWebViewDelegate Ссылка на Протокол гласит:Предварительный просмотр UIWebViewDelegate в ARC?

Перед выпуском экземпляра UIWebView для которого установлен делегата, вы должны сначала установить свойство UIWebView делегата всухую перед утилизацией экземпляра UIWebView. Это можно сделать, например, в методе dealloc, где вы располагаете UIWebView.

все еще необходимо в ARC?

+0

Я определенно буду (и делаю). Похоже, есть две возможные проблемы. Один из них - это вопрос о сильном контрольном цикле (так называемый цикл сохранения), который я не считаю здесь. Во-вторых, этот объект может асинхронно вызывать методы делегата из другой очереди. Возможно, это не проблема, но, учитывая предупреждение о документах, я был бы склонен следовать этому совету, чтобы удостовериться, что делегат «нуль». – Rob

ответ

4

Если делегат определен как свойство WEAK, удаление делегата не требуется, поскольку ARC сделает это за вас. Однако, если класс не скомпилирован с ARC, а делегат отмечен «назначать», вы должны позаботиться и установить его на нуль.

+0

Я проверил исходный код UIWebView. Делегат определяется как назначение (не слабый), даже если я разрешил ARC для моего проекта. Похоже, я должен сам справиться с этим. –

+0

В каком методе мы бы установили делегат на нуль? –

+0

@NicHubbard dealloc - это метод – Stavash