我正在使用MKMapview和mk注释。我的应用程序崩溃了。崩溃发生在MKAnnotationContainerView

时间:2013-11-11 12:51:47

标签: ios iphone mkmapview mapkit mkannotationview

我的要求是,跟踪用户位置并在地图视图中使用多种颜色绘制线条。我正在使用this link中的Craig代码。我两次在他的路线上添加注释:

  1. 当用户的位置发生变化时(我在这里添加CSMapAnnotationTypeEnd)。删除旧注释,然后我添加新注释。
  2. 每当用户双击屏幕时(我在这里添加CSMapAnnotationTypeImage)。
  3. 每当找到新位置时,地图视图都会闪烁。我不需要这个眨眼。

    但是我的应用程序崩溃了,这是崩溃报告。

    Exception Type:  EXC_CRASH (SIGABRT)
    Exception Codes: 0x0000000000000000, 0x0000000000000000
    Triggered by Thread:  0
    
    Last Exception Backtrace:
    0   CoreFoundation                  0x310ebf4e __exceptionPreprocess + 126
    1   libobjc.A.dylib                 0x3b4c46aa objc_exception_throw + 34
    2   CoreFoundation                  0x310eba4c __NSFastEnumerationMutationHandler + 124
    3   MapKit                          0x32284dfe -[MKAnnotationContainerView _updateAnnotationViewPerspective] + 238
    4   MapKit                          0x32284c3c -[MKNewAnnotationContainerView _updateAnnotationViewPerspective] + 56
    5   MapKit                          0x322b6962 -[MKMapView annotationManager:didAddAnnotationRepresentations:] + 42
    6   MapKit                          0x32280bc4 -[MKAnnotationManager updateVisibleAnnotations] + 1196
    7   Foundation                      0x31acfec8 __NSFireTimer + 60
    8   CoreFoundation                  0x310b70e2 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 10
    9   CoreFoundation                  0x310b6cfa __CFRunLoopDoTimer + 778
    10  CoreFoundation                  0x310b5096 __CFRunLoopRun + 1206
    11  CoreFoundation                  0x3101fce2 CFRunLoopRunSpecific + 518
    12  CoreFoundation                  0x3101fac6 CFRunLoopRunInMode + 102
    13  GraphicsServices                0x35d4027e GSEventRunModal + 134
    14  UIKit                           0x338c1a3c UIApplicationMain + 1132
    15  MyAppName                       0x000845b8 main (main.m:16)
    16  libdyld.dylib                   0x3b9ccab2 tlv_initializer + 2
    

    请任何人有任何想法达到我的要求。

    这是我添加和删除注释的代码。(当我获得新位置时)。

    for(CSMapAnnotation *annotation in _mapView.annotations){
    
            if([annotation isEqual:annotationEnd]){
    
                [_mapView removeAnnotation:annotationEnd];
    
                annotationEnd = nil;
            }
    
        }
    annotationEnd = [[CSMapAnnotation alloc] initWithCoordinate:[[pointsArray objectAtIndex:
    ([pointsArray count] - 1)] coordinate] annotationType:CSMapAnnotationTypeEnd title:@""];
    
    [_mapView addAnnotation:annotationEnd];
    

0 个答案:

没有答案