0

我的要求是,在地图视图中跟踪用户位置并用多种颜色画线。我正在使用来自此链接的 Craig 的代码。我在他的路线上添加了两次注释:

  1. 当用户的位置发生变化时(这里我添加了 CSMapAnnotationTypeEnd)。删除旧注释,然后添加新注释。
  2. 每当用户双击屏幕(这里我添加 CSMapAnnotationTypeImage)。

每当找到新位置时,地图视图就会闪烁。我不需要这个闪烁。

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

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];
4

0 回答 0