我正在使用MapKit,并且在启动应用程序时偶尔会出现以下错误。
'Invalid Region <center:nan, nan span:+180.00000000, +360.00000000>'
我用于设置区域的代码如下。
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
if (!self.initialLocation)
{
NSLog(@"Center is %f", userLocation.coordinate.longitude); // Debug
[self calculateLocationAddress]; // Reverse geolocating, does not create the error
self.initialLocation = userLocation.location;
MKCoordinateRegion region;
region.center = userLocation.coordinate;
// Region to show when app is loaded
region.span = MKCoordinateSpanMake(0.04, 0.04);
region = [mapView regionThatFits:region];
[mapView setRegion:region animated:YES];
}
}
该方法中的日志显示用户位置已设置,因为我一直在其中获取正确的值,即使它因无效区域错误而崩溃。我也尝试使用CLLocationCoordinate2DIsValid
来验证区域,但同样的错误。如上所述,这个错误非常零星,偶尔会出现。
关于我可能做错的任何想法?
修改 如果我打开故事板并在再次编译之前对其进行更改,则错误几乎总是消失。
答案 0 :(得分:0)
我也遇到了同样的问题,并且可以通过以下代码解决。
if ( (region.center.latitude >= -90) && (region.center.latitude <= 90) && (region.center.longitude >= -180) && (region.center.longitude <= 180)) {
self.mapView.setRegion(region, animated: true)
}
else
{
print("Invalid region!")
}
快乐编码 谢谢