내 iPAD 응용 프로그램에는 6 개의 UITableView가 있습니다. 각각의 tableview에 대한 데이터를 얻으려면 NSURLConnection을 사용하여 Webservice를 호출하고 웹 서비스에서 돌아와 데이터를 데이터베이스에 저장하는 XML을 구문 분석합니다.비동기 적으로 데이터를받지 않는 여러보기에 대한 NSURLConnection
저는 6 개의 UITableView를 가지고 있기 때문에 동시에 각보기에 대한 Webservice 요청을 보냅니다. 그러나, 내가 직면하고있는 문제는 내 애플 리케이션이 1 테이블보기에 대한 -(void) connection:(NSURLConnection *) connection didReceiveData:(NSData *) data
의 Webservice에서 데이터를 수신하기 때문에 다른 tableviews의 파서가 수행하는 데이터베이스 작업에 따라 달라진다는 것입니다.
예를 들어, tableview의 A, B, C, D에 대한 웹 서비스 요청은 모두 동시에 전송됩니다. 받은 데이터가 구문 분석되어 내 데이터베이스에 저장 될 때까지 -(void) connection:(NSURLConnection *) connection didReceiveData:(NSData *) data
함수의 데이터가 반환 될 때까지 다른 테이블 뷰에 대한 응답이 반환되지 않습니다.
내가 뭘 잘못하고 있는지 알 수 없습니다. NSURLConnection은 비동기식이지만 응답이 너무 좋아 보이지 않습니다.
WebService에 요청 전송 용 - - 내가 무엇을 잘못하고 있어요
- (void) callMedicationWebService
{
conn = [[NSURLConnection alloc] initWithRequest:req 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];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSString *alertMessage = [formatter stringFromDate:[NSDate date]];
[formatter release];
NSLog(@"got data back from WS %@", alertMessage);
}
-(void) connectionDidFinishLoading:(NSURLConnection *) connection
{
[connection release];
// Parse xml
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:[CommonHelper decodeHTMLCharactorsFromString:webData]];
TableAHandler *handler = [[TableAHandler alloc] init];
[handler initTableAHandler];
[xmlParser setDelegate:handler];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser setShouldProcessNamespaces:YES];
BOOL success = [xmlParser parse];
}
누군가가 나를 도울 수 있을까를 여기
내 코드?
어떻게 그랬습니까? 나는 같은 문제가있다! – Leonardo