我正在开发一款具有反向地理编码功能的iOS应用。当我第一次调用函数时一切都很好。在第二次调用之后(使用控制器的新实例进行调用),出现“Domain = kCLErrorDomain Code = 2”错误。这发生在模拟器和设备上。坐标有效。 我的代码:
CLGeocoder *geoCoder = [[CLGeocoder alloc] init];
CLLocation *loc = [[CLLocation alloc] initWithLatitude:cityCoords.latitude longitude:cityCoords.longitude];
self.displayedCity = [[Stadt alloc] init];
[geoCoder reverseGeocodeLocation:loc completionHandler:^(NSArray *placemarks, NSError *error) {
if(!error){
for (CLPlacemark * placemark in placemarks) {
self.displayedCity.name = [placemark locality];
self.displayedCity.stadtCoord = placemark.region.center;
}
[self loadCity:self.displayedCity.name];
}
else{
NSLog(@"failed getting city: %@", [error description]);
}
}];
提前致谢!!
答案 0 :(得分:4)
错误2通常意味着您经常调用地理定位服务器。通常,每当您触发委托方法didUpdateLocations时向服务器发送反向地理编码请求时,就会发生这种情况。在文档中,Apple说这通常应该每分钟进行一次。
答案 1 :(得分:1)
有关此错误的更多信息,请参阅Apple关于kCLErrorDomain的文档:Core Location Constants Reference和CLError.h
:
kCLErrorNetwork
网络不可用或发生网络错误。