目前,我正在开发iPad的应用程序,该应用程序将在某个时候显示一个城市列表,这些城市旁边的位置是与用户当前位置的距离。

我正在使用一个使用我之前构建的数据库的循环。这是代码:

NSString *address = [NSString stringWithFormat:@"%@, Nederland", [info2 objectForKey:@"stadsnaam"]];
    [self.geocoder geocodeAddressString:address completionHandler:^(NSArray *placemarks, NSError *error) {
        CLPlacemark *placemark = [placemarks objectAtIndex:0];
        CLLocation *location = placemark.location;
        CLLocationCoordinate2D firstLocation = location.coordinate;
        NSLog(@"%f,%f", firstLocation.latitude, firstLocation.longitude);
    }];

这段代码在for循环中。但是第一次运行时,它仅返回0.0000

第二次激活循环(我确信它运行了不止一次),它仅返回当前位置和第一个城市之间的距离。

该应用程序通过以下代码获取城市名称:[NSString stringWithFormat:@"%@, Nederland", [info2 objectForKey:@"stadsnaam"]]
经过我验证和工作。我想避免使用Google API,因为我每天可能提出的请求超出XD的上限

感谢您的帮助,如果有任何不清楚的地方请通知我,并提前致谢!

最佳答案

您需要阅读the documentation以获得-geocodeAddressString:completionHandler::

发起前向地理编码请求后,请勿尝试发起另一个前向或反向地理编码请求。

您可以使用CLGeocoder的geocoding属性来确定是否正在进行地理编码操作。

关于ios - 无法循环地理编码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16652469/

10-10 21:11