Этот блог предлагает хорошее решение для обработки нескольких NSURLConnection: создайте собственный класс «CustomURLConnection» с дополнительным tag
свойство.
http://blog.emmerinc.be/index.php/2009/03/02/custom-nsurlconnection-class-with-tag/
http://blog.emmerinc.be/index.php/ 2009/03/15 / multiple-async-nsurlconnections-example /
По сути, он просто добавил свойство tag
к существующему NSURLConnection:
CustomURLConnection.m
- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately tag:(NSString*)tag {
self = [super initWithRequest:request delegate:delegate startImmediately:startImmediately];
if (self) {
self.tag = tag;
}
return self;
}
затем, позже в обычные методы загрузки NSURLConnection, вы можете:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
//Log the connection’s tag
CustomURLConnection *ttttag = (CustomURLConnection *)connection; // **HERE**
NSLog(@”%@”, ttttag.tag);
NSMutableData *dataForConnection = [self dataForConnection:(CustomURLConnection*)connection];
[connection release];
}
Итак, вот где у меня проблемы.На мой взгляд, все идет следующим образом:
), который в конечном итоге вызовет обычные методы NSURLConnection, такие как connectionDidFinishLoading
. Что происходит с тегом
в этот момент? connectionDidFinishLoading
я могу преобразовать соединение обратно в «соединение + тег», а затем найти этот отсутствующий тег информация, которая была отброшена. Как? Может быть, я просто сбиваю с толку, но кажется, что тег
был отброшен, когда он запускается по обычному пути NSURLConnection
. Но затем, преобразовав его в качестве подкласса, я снова могу восстановить свойство tag
. Где он жил / пропадал в то время?
Может ли кто-нибудь, кто лучше разбирается в наследовании, объяснить мне это?