как получить данные ответа в массив? - PullRequest
0 голосов
/ 09 марта 2012

Привет всем, как выглядит код для получения полного ответа в массиве? На самом деле я реализовал код, как показано ниже, здесь моя проблема в том, что когда я вызываю метод в следующем классе, я получаю нулевой ответ массива, поэтому PLZ поможет мнечтобы избежать этой проблемы в iphone.

Мой код:

- (недействительно) countrySelection {

    NSString *jobSearchUrlString = [NSString stringWithFormat:@"http://infra2appsmobile.cloudapp.net/Infra2Apps.svc/Countries"];
    //NSLog(@"url for new articles is = %@",jobSearchUrlString);
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:jobSearchUrlString]];   

    NSURLConnection *theconnection =  [[NSURLConnection alloc] initWithRequest:request delegate:self];
    if (theconnection) {
        RoutData = [[NSMutableData alloc] init];
    }

}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{   

    [RoutData setLength: 0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [RoutData appendData:data];

           NSString *thexml = [[NSString alloc] initWithData:RoutData encoding:NSUTF8StringEncoding];

    NSDictionary *dictXML= [XMLReader dictionaryForXMLString:thexml error:nil];

    NSMutableArray *arrStation = [[dictXML objectForKey:@"feed"] objectForKey:@"entry"] ;//this would return the array of station dictionaries

    for (int i=0; i<[arrStation count]; i++) {
        NSLog(@"---->> String Type Country names <<---: %@",[[[[[arrStation objectAtIndex:i] objectForKey:@"content"] objectForKey:@"m:properties"] objectForKey:@"d:CountryName"] objectForKey:@"text"]);
        [materialarray addObject:[[[[[arrStation objectAtIndex:i] objectForKey:@"content"] objectForKey:@"m:properties"] objectForKey:@"d:CountryName"] objectForKey:@"text"]];

        NSLog(@"--->>** Array Type Country names **<<<---%@",materialarray);


    }



}

Мой ответ:

2012-03-09 12: 49: 40.856 TableSample [4862: f803] ---- >> Тип строки Имена стран << ---: Франция 2012-03-09 12: 49: 40.867 TableSample [4862: f803] --->> ** Тип массива Имена стран <<< --- (null) 2012-03-09 12: 49: 40.868 TableSample [4862: f803] ---- >> Тип строки Имена стран << --: MEA HQ 2012-03-09 12: 49: 40.869 TableSample [4862: f803] --- >> Тип массива Имена стран <<< --- (null) 2012-03-09 12: 49: 40.870 TableSample [4862: f803] ---- >> Тип строки Имена стран << ---: Израиль 2012-03-09 12: 49: 40.871 TableSample [4862: f803] --- >> Тип массива Имена стран <<< --- (null) 2012-03-09 12: 49: 40.872 TableSample [4862: f803] ---- >> Тип строки Имена стран << ---: Турция 2012-03-09 12: 49: 40.879 TableSample [4862: f803] --- >> Тип массива Имена стран <<< --- (null) 2012-03-09 12: 49: 40.879 TableSample [4862: f803] ---- >> Тип строки Имена стран << ---: ОАЭ 2012-03-09 12: 49: 40.880 TableSample [4862: f803] --- >> Тип массива Имена стран <<< --- (null) 2012-03-09 12: 49: 40.881 TableSample [4862: f803]---- >> Строковый тип Имена стран << ---: SA 2012-03-09 12: 49: 40.881 TableSample [4862: f803] --- >> Тип массива Имена стран <<<--- (null) 2012-03-09 12: 49: 40.882 TableSample [4862: f803] ---- >> Тип строки Имена стран << ---: RSA 2012-03-09 12: 49: 41.020TableSample [4862: f803] --- >> Тип массива Имена стран <<< --- (null) 2012-03-09 12: 49: 41.021 TableSample [4862: f803] ---->> Строковый тип Имена стран << ---: WE HQ 2012-03-09 12: 49: 41.022 TableSample [4862: f803] --- >> Массив Тип Имена стран ** <<< ---(нуль </p>

Ответы [ 2 ]

2 голосов
/ 09 марта 2012

В connectionDidFinishLoading методе делегата вы получите строку ответа, вам нужно вызвать JSONValue для этой строки ответа, она выдаст вам результаты в массиве.

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    [connection release];
    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    NSLog(@"responseString %@",responseString);
    self.responseData = nil;
    NSArray *responseArray = [responseString JSONValue];
    [responseString release];
}
1 голос
/ 09 марта 2012

Пожалуйста, убедитесь, что выделено materialarray.

Я думаю, что здесь есть проблема.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...