У меня проблема с анализом ответа API геокодирования Google.Вот метод:
-(void) findLatLong:(NSString*) adr{
NSString *encodedAddress = (NSString *) CFURLCreateStringByAddingPercentEscapes(
NULL, (CFStringRef) adr,
NULL, (CFStringRef) @"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8 );
NSString* searchURL = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?address=%@&sensor=true",encodedAddress];
NSError* error = nil;
NSURLResponse* response = nil;
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] init] autorelease];
NSURL* URL = [NSURL URLWithString:searchURL];
[request setURL:URL];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[request setTimeoutInterval:30];
NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (error){
NSLog(@"Error performing request %@", searchURL);
return;
}
NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSDictionary *results = [jsonString objectFromJSONString];
// to be added
}
Я могу получить ответную строку json из Geococing API.Когда я анализирую это с JSonKit, у меня есть два ключа.Это результат и статус .Но когда я иду на шаг дальше, как показано ниже:
[[results objectForKey:@"results"] objectForKey:@"address_components"]
, я всегда получаю нулевое значение.Любое предложение?
Я использую XCode 4.2.1