Резюме моего вопроса: сохраняет ли NSURLConnection свой делегат?
Подробный вопрос и сценарий:
У меня есть пользовательский класс, называемый JsonDownloader, который принимает URL-адрес и возвращает NSDictionary JSON, который возвращает URL-адрес.
В приложении для iPhone я делаю что-то вроде этого. (метод init запускает весь процесс)
- (void)viewDidLoad {
JsonDownloder *temp = [[[JsonDownloader alloc] initWithURL:urlString returnDataTo:self]];
[temp release];
[super viewDidLoad];
}
Когда JsonDownloader завершает загрузку и разбор, он выполняет обратный вызов объекта returnDataTo: в данном случае вызывающего объекта.
Это работает отлично. Даже если я введу 30-секундную задержку в ответе на мои веб-серверы, JsonDownloader все еще существует и правильно выполняет обратный вызов.
Итак, мои вопросы таковы: что удерживает JsonDownloader до конца цикла событий? Я прямо его освобождаю.
Моя догадка заключается в том, что NSURLConnection должен делать удержание на своем делете, но я ничего не видел в документации. У кого-нибудь есть идеи?