Iphone 在iOS的谷歌经纬度查询中没有得到json响应?
我是iOS新手,如果有任何帮助,我将不胜感激。 我试图从地址中获取经度和纬度,之前代码运行良好,但现在JSON数据为空 这里是我的示例代码Iphone 在iOS的谷歌经纬度查询中没有得到json响应?,iphone,json,google-maps-api-3,Iphone,Json,Google Maps Api 3,我是iOS新手,如果有任何帮助,我将不胜感激。 我试图从地址中获取经度和纬度,之前代码运行良好,但现在JSON数据为空 这里是我的示例代码 url = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?address=%@&sensor=false",appDelegate.sAddress]; url=[url stringByAddingPercentEscapesU
url = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?address=%@&sensor=false",appDelegate.sAddress];
url=[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Address URL: %@",url);
//Formulate the string as a URL object.
NSURL *requestURL=[NSURL URLWithString:url];
NSData* data = [NSData dataWithContentsOfURL: requestURL];
NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"my Coordinate : %@",returnString);
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:data
options:kNilOptions
error:&error];
但我得到的输出为null
所以请帮帮我
谢谢 必须使用以下方法构造实际接收数据的returnString:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
查看有关如何使用NSURLConnection和委托方法的更多信息。我想说您错过了最重要的“请求” 我就是这么做的。希望有帮助:
NSString *encodedAddress = (__bridge_transfer NSString *) CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge_retained CFStringRef)searchBar.text, 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];
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];
if (jsonString!=nil){
NSLog(@"%@",jsonString);
}
谢谢你的回复,这些都让我学到了很多。 作为我的一位朋友,请告诉我解决方案,我将与您分享 这是密码
url = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?address=%@&sensor=false",appDelegate.sAddress];
url=[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Address URL: %@",url);
//Formulate the string as a URL object.
NSURL *requestURL=[NSURL URLWithString:url];
NSData* data = [NSData dataWithContentsOfURL: requestURL];
NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *locationResult = [parser objectWithString:returnString];
//[reverseGeoString copy]`
它工作得很好
但仍有一个问题是为什么会发生这种情况。正如前面所述,代码工作正常,但突然停止工作。考虑使用,而不是手动直接查询。