użyć pola userinfo! Po to jest to!
Obiekt ASIHTTPRequest (lub ASIFormDataRequest) ma właściwość o nazwie .userInfo, która może pobrać NSDictionary z dowolną zawartością. Więc prawie zawsze iść:
- (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.
}
}
ustawić inną wartość dla obiektu w kluczowych @"type"
w każdym innym ASIHTTPRequest zrobić w tym kontrolerze widoku, i obecnie można je rozróżnić w -requestFinished:
i obsłużyć każdy z nich odpowiednio .
Jeśli naprawdę masz ochotę, możesz zabrać ze sobą inne dane, które mogą się przydać, gdy żądanie się zakończy. Na przykład, jeśli ładujesz leniwy obraz, możesz przekazać sobie uchwyt do UIImageView, który chcesz zapełnić, a następnie zrobić to w -requestFinished
po załadowaniu danych obrazu!