Я не уверен на 100%, в чем вопрос.Вы делаете правильное HTTP-соединение, которое делает значимый запрос от Google (если вы удалите шесть пробелов в середине, которые почти наверняка являются результатом копирования кода и вставьте сюда).Вы накапливаете результат.В данном коде вы, кажется, пропускаете объект jsonData, но я предполагаю, что это не имеет отношения к вопросу.
Вы используете объект CJSONDeserializer, о котором я не слышал, но, кажется, обычно упоминается в Google, так что, вероятно,заслуживающее доверие.Возвращает действительный NSDictionary.Вы печатаете словарь, и он дает правильные результаты.
Неужели путаница состоит в том, что когда вы печатаете словарь на консоль, он не выглядит идентично JSON, который вы получили?Если это так, то это потому, что у него больше нет концепции, что он исходит из JSON, а Cocoa предшествует стандарту JSON и, следовательно, не использует его для ведения журнала.
В любом случае feedDictionary является допустимым словарем.Следующее:
NSLog(@"%@", [feedDictionary objectForKey:@"status"]);
Выведет строку «ОК».Это:
NSArray *addressComponents = [feedDictionary objectForKey:@"address_components"];
for(NSDictionary *component in addressComponents)
{
NSLog(@"%@", [component objectForKey:@"long_name"]);
}
Будет печатать строки «1600», «Амфитеатр Pkwy», «Маунтин-Вью», «Сан-Хосе», «Санта-Клара», «Калифорния», «США», «94043».'в таком порядке.
Если вы хотите распечатать необработанный JSON на консоль, вы, вероятно, захотите что-то вроде этого (при условии, что результат возвращается как UTF8):
-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"Fininshed Loading...");
NSString *feedString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"JSON was: %@", feedString);
[feedString release];
/*NSDictionary * feedDictionary = [self parseJSON:jsonData];
NSLog(@"JSON as NSDictionary: %@", feedDictionary); */
}
Хотя тогдавам все равно придется проанализировать его в словаре, чтобы получить из него значимые результаты.