aplicación de service web iphone

Hola. Estoy escribiendo una aplicación para iPhone que comunica el service web. Así que tengo dos campos de text. El progtwig necesita leer el valor del primer campo de text y publicar el service web. Después de la respuesta del service web, necesita escribir el segundo campo de text. Pero en el segundo campo de text no escribe nada. imprime nulo en la console. ¿Por qué se vuelve? Gracias.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { nodeContent = [[NSMutableString alloc]init]; } return self; } - (IBAction)login:(id)sender { NSLog(@"PASSWORD text: %@",password.text); if ([password.text length]==0) { UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"WebService" message:@"Supply Data in text field" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"ok",nil]; [alert show]; [alert release]; } else { NSString *soapFormat = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" "<soap:Body>\n" "<CelsiusToFahrenheit xmlns=\"http://tempuri.org/\">\n" "<Celsius>%@</Celsius>\n" "</CelsiusToFahrenheit>\n" "</soap:Body>\n" "</soap:Envelope>\n",password.text]; NSLog(@"The request format is %@",soapFormat); NSURL *locationOfWebService = [NSURL URLWithString:@"http://www.w3schools.com/webservices/tempconvert.asmx"]; NSLog(@"web url = %@",locationOfWebService); NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc]initWithURL:locationOfWebService]; NSString *msgLength = [NSString stringWithFormat:@"%d",[soapFormat length]]; [theRequest addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"]; [theRequest addValue:@"http://tempuri.org/CelsiusToFahrenheit" forHTTPHeaderField:@"SOAPAction"]; [theRequest addValue:msgLength forHTTPHeaderField:@"Content-Length"]; [theRequest setHTTPMethod:@"POST"]; //the below encoding is used to send data over the net [theRequest setHTTPBody:[soapFormat dataUsingEncoding:NSUTF8StringEncoding]]; NSURLConnection *connect = [[NSURLConnection alloc]initWithRequest:theRequest delegate:self]; if (connect) { webData = [[NSMutableData alloc]init]; startActivityIndicator; } else { NSLog(@"No Connection established"); } // [self performSegueWithIdentifier:@"logindevam" sender:self]; } } - (IBAction)sendkeyboard:(id)sender { [sender resignFirstResponder]; } -(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 { NSLog(@"ERROR with theConenction"); [connection release]; [webData release]; } -(void)connectionDidFinishLoading:(NSURLConnection *)connection { NSLog(@"DONE. Received Bytes: %d", [webData length]); NSString *theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding]; NSLog(@"%@",theXML); xmlParser = [[NSXMLParser alloc]initWithData:webData]; [xmlParser setDelegate: self]; //[xmlParser setShouldResolveExternalEntities: YES]; [xmlParser parse]; // [connection release]; //[webData release]; //[resultTable reloadData]; stopActivityIndicator; } //xml delegates - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict { } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { [nodeContent appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if ([elementName isEqualToString:@"CelsiusToFahrenheitResult"]) { NSLog(@"nodeContent: %@",nodeContent); // it becomes null finaldata = nodeContent; NSLog(@"finaldata: %@",finaldata); // it becomes null NSLog(@"username.text: %@",username.text); // it becomes null username.text = finaldata; } username.text = finaldata; } 

Código::

 -(void)connectionDidFinishLoading:(NSURLConnection *)connection { NSLog(@"DONE. Received Bytes: %d", [webData length]); NSString *theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding]; NSLog(@"%@",theXML); theXML = [theXML stringByReplacingOccurrencesOfString:@"&lt;" withString:@"<"]; theXML = [theXML stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"]; theXML = [theXML stringByReplacingOccurrencesOfString:@"&amp;" withString:@"&"]; NSString *str, *result; result = [[[NSString alloc] initWithFormat:@""] autorelease]; NSArray *array=[theXML componentsSeparatedByString:@"<CelsiusToFahrenheitResult>"]; for(int i=1;i<[array count];i++) { str=[array objectAtIndex:i]; NSRange ranfrom=[str rangeOfString:@"</CelsiusToFahrenheitResult>"]; result =[str substringToIndex:ranfrom.location]; } NSLog(@"\n -> %@", result); t2.text = result; // Your Second textfield [connection release]; } 

Definitivamente funcionará. Gracias.