Revision: 34821
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 28, 2010 17:34 by leemills
Initial Code
/*------------------------------------------------------------- * DECLORATION *------------------------------------------------------------*/ NSMutableDictionary *receivedData; /*------------------------------------------------------------- * IMPLEMENTATION *------------------------------------------------------------*/ - (void)startAsyncLoad:(NSURL*)url tag:(NSString*)tag { NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; CustomURLConnection *connection = [[CustomURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES tag:tag]; if (connection) { [receivedData setObject:[[NSMutableData data] retain] forKey:connection.tag]; } } - (NSMutableData*)dataForConnection:(CustomURLConnection*)connection { NSMutableData *data = [receivedData objectForKey:connection.tag]; return data; } - (void)load { receivedData = [[NSMutableDictionary alloc] init]; NSURL *url1 = [NSURL URLWithString:@"http://blog.emmerinc.be"]; NSURL *url2 = [NSURL URLWithString:@"http://www.emmerinc.be"]; NSURL *url3 = [NSURL URLWithString:@"http://twitter.com/emmerinc"]; [self startAsyncLoad:url1 tag:@"tag1"]; [self startAsyncLoad:url2 tag:@"tag2"]; [self startAsyncLoad:url3 tag:@"tag3"]; } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { NSMutableData *dataForConnection = [self dataForConnection:(CustomURLConnection*)connection]; [dataForConnection setLength:0]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSMutableData *dataForConnection = [self dataForConnection:(CustomURLConnection*)connection]; [dataForConnection appendData:data]; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSMutableData *dataForConnection = [self dataForConnection:(CustomURLConnection*)connection]; [connection release]; // Do something with the dataForConnection. } /*------------------------------------------------------------- * CUSTOM NSURLCONNECTION CLASS *------------------------------------------------------------*/ @interface CustomURLConnection : NSURLConnection { NSString *tag; } @property (nonatomic, retain) NSString *tag; - (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately tag:(NSString*)tag; @end /*------------------------------------------------------------- * IMPLEMENTATION *------------------------------------------------------------*/ @implementation CustomURLConnection @synthesize tag; - (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; } - (void)dealloc { [tag release]; [super dealloc]; } @end
Initial URL
Initial Description
Initial Title
Multiple async NSURLConnections
Initial Tags
Initial Language
Objective C