我的要求是,在地图视图中跟踪用户位置并用多种颜色画线。我正在使用来自此链接的 Craig 的代码。我在他的路线上添加了两次注释:
- 当用户的位置发生变化时(这里我添加了 CSMapAnnotationTypeEnd)。删除旧注释,然后添加新注释。
- 每当用户双击屏幕(这里我添加 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];