Используя настраиваемый подкласс NSURLConnection, как он «находит» дополнительные данные в классе позже?

Этот блог предлагает хорошее решение для обработки нескольких 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 . Где он жил / пропадал в то время?

Может ли кто-нибудь, кто лучше разбирается в наследовании, объяснить мне это?

6
задан cksubs 30 November 2011 в 20:13
поделиться