iOS6中的MapView在缩放地图时崩溃

Posted

技术标签:

【中文标题】iOS6中的MapView在缩放地图时崩溃【英文标题】:MapView in iOS6 crashes when zooming map 【发布时间】:2012-11-10 05:20:06 【问题描述】:

我正在尝试将地图跨越到两个坐标的中心。它在以前版本的 ios 上运行良好,但现在突然,我收到以下错误消息:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid Region <center:nan, nan span:nan, nan>' 

有什么想法吗?

        CLLocationCoordinate2D savedCoordinate;
        savedCoordinate.latitude = [userDef doubleForKey:@"savedCoordinate-latitude"];
        savedCoordinate.longitude = [userDef doubleForKey:@"savedCoordinate-longitude"];

        savedPosition = savedCoordinate;

        CLLocationDistance visibleDistance = 100;
        MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(savedCoordinate, visibleDistance, visibleDistance);
        MKCoordinateRegion adjustedRegion = [mapView regionThatFits:region];
        [mapView setRegion:adjustedRegion animated:NO];

【问题讨论】:

【参考方案1】:

错误消息告诉您问题:您指定的坐标包含 nan(“不是数字”)而不是常规数字。

如果你记录你的坐标片段,你应该能够找出细节。特别是,我会关注savedCoordinate.latitudesavedCoordinate.longitude。也许您在用户默认值中存储了一个字符串而不是一个数字?如果用户默认值中不存在该键,则这些值应为 0 而不是 nan。

另见:

Wikipedia: NaN

【讨论】:

[userDef setDouble:location.latitude forKey:@"savedCoordinate-latitude"]; [userDef setDouble:location.longitude forKey:@"savedCoordinate-longitude"]; [userDef setBool:YES forKey:@"savedCoordinate-exist"]; ,我应该存储其他东西而不是双吗? savedCoordinate 在传递到 MKCoordinateRegionMakeWithDistance 之前是什么样子?

以上是关于iOS6中的MapView在缩放地图时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

MapView 以用户坐标为中心缩放

MKMapView 在 iOS 6 上显示用户位置时崩溃

Android Studio:加载时MapView应用崩溃

关于android上谷歌地图的缩放事件

地图缩放时,别针上的弹出框不移动

使用固定缩放和边界框导出传单地图而不填充