Я также хотел бы поделиться своим опытом, который очень похож на никоновский.
Я работаю с модифицированным примером LazyTablesCode, который является примером, который приходит прямо из Apple и асинхронно загружает изображения в UITableView. Связь между загрузчиком и представлением, сделанным через делегатов.
В моем коде у меня была проблема, что иногда загрузка изображения заканчивается, когда форма, которая должна быть вызвана через делегат, была выпущена. Я был вынужден добавить этот кусок кода внутри кода ViewController (метод dealloc):
if (self.nsDictionaryWithObjectsDownloading != nil) {
for (id theKey in self.nsDictionaryWithObjectsDownloading) {
Myobj *downloader = [self.nsDictionaryWithObjectsDownloading objectForKey:theKey];
downloader.delegate = nil;
}
}
Кажется, что эти строки решения проблемы. Во всяком случае, было бы очень оценено мнение о том, если это хорошее решение или нет или даже проблемы с памятью при выполнении downloader.delegate = nil;
Спасибо и привет,
Чтобы увидеть, если объект был выпущен полностью - отправить сообщение войти либо '' dealloc' или finalize' методов класса. – Abizern
@ Абизем: в этом случае это не поможет. Вопрос в том, можно ли определить, был ли объект выпущен (освобожден). Я не думаю, что это возможно вообще без сотрудничества с самим объектом. –
Я имел в виду, что класс отправляет сообщения журнала, когда он полностью освобождается. – Abizern