Carga de video al server desde la aplicación iphone

Desde mi aplicación para iPhone, estoy subiendo videos al server a través de la publicación HTTP. Tengo éxito en publicar el video, aunque tengo 3 preguntas (tengo que arreglar esto)

1. ¿Cómo puedo reiniciar la carga si la networking se pierde por un time y vuelvo?

2. Cómo cargar varios files en una queue

3.Si el usuario usa la networking mobile (3G), ¿será algún problema … actualmente estoy probando solo con Wi-Fi (ipod)

Estoy agregando mi código de publicación de files aquí …

"UploadClass.h" @implementation UploadClass -(void)uploadVideoToServer:(NSDictionary *)bits file:(NSData *)file { appDelegate = (AppDelegate *)[UIApplication shanetworkingApplication].delegate; shanetworkingclass = [ShanetworkingClass shanetworkingInstance]; NSString *urlString =@"http://sampleurl.com/upload_video"; NSMutableURLRequest *request= [[[NSMutableURLRequest alloc] init] autorelease]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; NSString *boundary = @"---------------------------14737809831466499882746641449"; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; NSMutableData *postbody = [NSMutableData data]; [postbody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; //userid [postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"user_id\"\r\n\r\n%@", appDelegate.userid] dataUsingEncoding:NSUTF8StringEncoding]]; [postbody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; //video file [postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"video\"; filename=\"%@\"\r\n", @"a.mov"] dataUsingEncoding:NSUTF8StringEncoding]]; [postbody appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postbody appendData:[NSData dataWithData:file]]; [postbody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [request setHTTPBody:postbody]; conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; if (conn) { webData = [[NSMutableData data] retain]; } } -(void) connection:(NSURLConnection *) connection didReceiveResponse:(NSURLResponse *) response { [webData setLength: 0]; } -(void) connection:(NSURLConnection *) connection didReceiveData:(NSData *) data { [webData appendData:data]; } -(void) connection:(NSURLConnection *) connection didFailWithError:(NSError *) error { [webData release]; [conn release]; } //---when the end of element is found--- -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { shanetworkingclass = [ShanetworkingClass shanetworkingInstance]; if ([elementName isEqualToString:@"status"]) { if([postStatus isEqualToString:@"true" ]){ appDelegate.isVideoUploading=@"NO"; [[NSNotificationCenter defaultCenter] postNotificationName:@"UPLOADFINISHED" object:@"true"]; NSLog(@"upload finished;"); shanetworkingclass.cameraBtn=YES; [[UIApplication shanetworkingApplication] setNetworkActivityIndicatorVisible:NO]; }else{ appDelegate.isVideoUploading=@"NO"; [[NSNotificationCenter defaultCenter] postNotificationName:@"UPLOADFINISHED" object:@"false"]; //show ui for daily posting failed!!!!! //UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Upload Faild" message:@"Please try after sometime !!!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; //[alert show]; //[alert release]; [[UIApplication shanetworkingApplication] setNetworkActivityIndicatorVisible:NO]; } } }