Uzyskaj wszystkie pobrane dane XML

Mam przestarzałą aplikację, która służy do pobierania dokumentu XML i analizowania go w aplikacji na iPhone'a. UżyłemNSURLConnection w tym celu:

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    //NSLog(@"Response :%@",response);
    responseData = [[NSMutableString alloc] init];
}

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    NSString *str = [[NSString alloc] initWithData:data 
                                          encoding:NSASCIIStringEncoding];

    [responseData appendString:str];
    [str release];
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{

    NSLog(@"DATA : %@",responseData);   

    if (responseData != nil) {

        [self startParsing:responseData];//Parse the data
        [responseData release];
    }   
}   

Od przeniesienia do użyciaNSXMLParserDelegate zAFXMLRequestOperation, Nie mogę znaleźć sposobu na poprawne pobranie danych XML:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{

    [responseData appendString:elementName];
    [responseData appendString:namespaceURI];
    [responseData appendString:qName];

}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
    [responseData appendString:string];

}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
    [responseData appendString:elementName];
    [responseData appendString:namespaceURI];
    [responseData appendString:qName];


}
-(void) parserDidEndDocument:(NSXMLParser *)parser{
    [SVProgressHUD showSuccessWithStatus:@"Downloading completed"];

        NSLog(@"DATA : %@",responseData);//not properly appended, tags delimeters are missing 

        if (responseData != nil) {

            [self startParsing:responseData];
            [responseData release];
        }


}

Jak dołączyć wszystkie dane otrzymane z serwera wresponseData zmienny ciąg? Zdebugowałem dane otrzymane po zakończeniu pobierania, a xml brakuje znaczników delimitera<>. Myślę, że brakuje mi sposobu na uzyskanie danych xml.

P.S: Pamiętaj, że ważne jest, aby pobrać xml w aNSMutableString obiekt.

@Fermi

użyłemAFURLConnectionOperation jak poleciłeś, działa dobrze z moim celem, ale zauważyłem, że moje odebrane dane nie są wychwytywane przez metody delegowane, zamiast tego mogę uzyskać dane w bloku uzupełniania:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:API_URL]];

AFURLConnectionOperation *operation = [[AFURLConnectionOperation alloc] initWithRequest:request];
operation.completionBlock = ^{
    NSLog(@"Complete: %@",operation.responseString);//responseString is my data


};
[operation start];
[SVProgressHUD showWithStatus:@"Downloading files"];

wo odkądNSURLConnection metody delegowania nie są wywoływane, jak mogę zarządzać awarią itp.? Dzięki.

questionAnswers(1)

yourAnswerToTheQuestion