【问题标题】:EXC_BAD_ACCESS in [MKMapView setShowsUserLocation][MKMapView setShowsUserLocation] 中的 EXC_BAD_ACCESS
【发布时间】:2011-08-23 22:28:43
【问题描述】:

我在一段相对简单的代码中得到了令人讨厌的 EXC_BAD_ACCESS。有谁知道为什么这段代码会崩溃?

stack:
_remove ()
-[MKQuadTrie remove:] ()
-[MKAnnotationContainerView removeAnnotation:] ()
-[MKMapView(UserPositioningInternal) removeUserLocation] ()
-[MKMapView(UserPositioning) stopUpdatingUserLocation] ()
-[MKMapView setShowsUserLocation:] ()
-[MapViewController stopTrackingLocation]

code:
- (void)stopTrackingLocation 
{
    if (mapView.showsUserLocation)
    {
        // Crashes here
        mapView.showsUserLocation = NO;
    } 
}

【问题讨论】:

  • 您找到解决此问题的方法了吗?我有同样的问题。
  • 如果这个堆栈跟踪是完整的而不是缩写的,它将更加有用。很多人搜索确切的崩溃文本。

标签: ios mapkit exc-bad-access


【解决方案1】:

我是新手,但我只是想提供帮助。 您的应用程序是否在您刚启动应用程序时失败? 我认为它显示访问不正确,因为获取您的位置需要时间,并且您在 gps 获取位置数据之前访问它。 所以为了防止这种情况,我将使用 didupdatetolocation: 方法。 将位置数据分配给“某物”

所以如果“某事”不为零,那么只有 mapview.showsuserlocation = NO;

【讨论】:

  • 这是我用来解决此框架问题的解决方法。
【解决方案2】:

当您尝试访问不存在的对象时会出现此错误。你确定mapView 在调用- stopTrackingLocation 之前没有从内存中释放吗?

【讨论】:

  • 我很确定地图视图仍然是一个有效的对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多