У меня есть класс, единственная цель которого - загрузить определенный файл из сети, сохранить его локально, а затем вернуть локальный путь к сохраненному файлу.
Я использую этот класс в зависимости от того, есть ли у меня локальная копия рассматриваемого файла или нет, и я иногда вызываю его несколько раз одновременно, если требуется загрузить более одного файла. То, как я использую это просто
Loader *l = [[Loader alloc] initWithDelegate:self];
[l downloadFile:someFile];
[l release];
Дело в том, что для того, чтобы сохранить его, пока он не закончил загрузку, я на самом деле делаю [self retain];
в классе, затем [self autorelease];
, когда это будет сделано. Это кажется хакерским. Как люди справляются с этим?