Используйте поле USERINFO! Вот для чего это!
Объект ASIHTTPRequest (или ASIFormDataRequest) имеет свойство, называемое .userInfo, которое может взять NSDictionary с чем-нибудь в нем, которое вы хотите. Так что я почти всегда иду:
- (void) viewDidLoad { // or wherever
ASIHTTPRequest *req = [ASIHTTPRequest requestWithUrl:theUrl];
req.delegate = self;
req.userInfo = [NSDictionary dictionaryWithObject:@"initialRequest" forKey:@"type"];
[req startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
if ([[request.userInfo valueForKey:@"type"] isEqualToString:@"initialRequest"]) {
// I know it's my "initialRequest" .req and not some other one!
// In here I might parse my JSON that the server replied with,
// assemble image URLs, and request them, with a userInfo
// field containing a dictionary with @"image" for the @"type", for instance.
}
}
Установите другое значение для объекта в ключевых @"type"
в каждом другом ASIHTTPRequest вы делаете в этой точке зрения контроллера, и теперь вы можете различать их в -requestFinished:
и обрабатывать каждый из них соответствующим образом ,
Если вы действительно любите, вы можете переносить любые другие данные, которые были бы полезны, когда запрос завершится. Например, если вы работаете с ленивыми изображениями, вы можете передать себе дескриптор UIImageView, который хотите заполнить, а затем сделать это в -requestFinished
после загрузки данных изображения!