Multiple NSURLConnections being started (in a single UIViewController) to gather different kinds of data. When they return (-connectionDidFinishLoading) I wanna do stuff with the data, depending on the type of data that has arrived. But one prob, HOW DO I KNOW WHICH NSURLConnection returned? I need to know so I can take action specific to the type of data that came. (Eg. display a twitter update if it was the twitter xml data)(Eg. display an image if it was a photo)
How do people usually solve this?
You keep pointers to both connections in the delegate, and compare these to the connection
parameter in connection:didReceiveData:
and connectiondidFinishLoading:
For example:
@interface Foo : NSObject {
NSURLConnection *connection1;
NSURLConnection *connection2;
}
and
connection1 = [NSURLConnection connectionWithRequest:request1 delegate:self];
connection2 = [NSURLConnection connectionWithRequest:request2 delegate:self];
and
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
if(connection == connection1) {
// Connection 1
} else if(connection == connection2) {
// Connection 2
}
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
if(connection == connection1) {
// Connection 1
} else if(connection == connection2) {
// Connection 2
}
}