Очистить делегата - PullRequest
       3

Очистить делегата

1 голос
/ 06 сентября 2011

Как правильно очистить делегат UIWebView?

В моей функции dealloc я добавил

[myWebView setDelegate:nil];
[myWebView release];

И нужен ли первый лигнан?

РЕДАКТИРОВАТЬ: а что, если мой объект был не UIWebView, а NSFetchedResultsController?

Спасибо

Ответы [ 3 ]

0 голосов
/ 06 сентября 2011

Я думаю, вам нужно только отменить все запросы, прежде чем их отпустить:

[webView stopLoading];

Cheers!.

0 голосов
/ 06 сентября 2011

Установка делегата на ноль - это одно.Другое, не менее важное или даже более важное, - это как правильно завершить загрузку UIWebView в случае, когда вам больше не нужны результаты, и вы собираетесь выпустить представление, содержащее ваш UIWebView.

Вот действительно хороший ответ на вышеуказанные вопросы и другие: Как безопасно завершить загрузку UIWebView в viewWillDisappear? .Это даст хороший обзор жизненного цикла UIWebView.

Подсказка при вызове stopLoading: вам не нужно проверять, загружается ли что-нибудь с isLoading перед вызовом stopLoading - простопозвоните stopLoading напрямую, и он ничего не сделает, если ничего не загружается.

0 голосов
/ 06 сентября 2011

В случае кода выше.Нет, вам, вероятно, не нужно очищать делегата.

Но, если у вас есть ClassA и ClassB, и вы установили ClassA в качестве делегата ClassB, то с этим нужно быть осторожным.... когда ClassA освобождается, пока ClassB все еще используется.

Итак, чтобы справиться с этим, ClassA очистит (себя) от свойства делегата ClassB в методе dealloc для ClassA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...