의 MKMap
이 있는데 그 중 모두 빨간색입니다. 내가 IB와 파란색에 빨간색에서 MKAnnotation
을 변경하는 "쇼 사용자 위치"를 선택, 내 viewForAnnotation
방법의 코드를 가지고 :MKUserLocation 파란색 userLocation MKAnnotation 실수로 터치 한 경우 앱이 손상됩니다.
if (annotation == theMap.userLocation)
return nil;
모든 좋은 앱이 잘 작동하지만 사용자의 경우 실수로 나는 위의 코드를 제거하면
2012-02-01 20:43:47.527 AusReefNSW[27178:11603] -[MKUserLocationView setPinColor:]: unrecognized selector sent to instance 0x79b0720
2012-02-01 20:43:47.528 AusReefNSW[27178:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MKUserLocationView setPinColor:]: unrecognized selector sent to instance 0x79b0720'
*** First throw call stack:
은 모두 잘 작동하지만 핀이 빨간색 : 나는 다음과 같은 충돌을 얻을 블루 userlocation 점을 두 드린다. 나는 푸른 아이콘을 가지고있는 것을 좋아하지 만, 아직 그 충돌이 왜 발견되지 않았다. 어떤 아이디어라도 감사 할 것입니다. 감사.
해결! Marvin에게 감사 드리며 코드를 사용하면 누구나 유용하다는 것을 알 수 있습니다. 간단히 말해, 먼저 MKAnnotation이 MyAnnotation Class 또는 MKUserLocation 클래스인지 확인해야했습니다. 현재 사용자의 위치에 대한
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKPinAnnotationView *)view
{
theAnnotationSelected = [[mapView selectedAnnotations] objectAtIndex:0];
if ([theAnnotationSelected isKindOfClass:[MyAnnotation class]])
{
view.pinColor = MKPinAnnotationColorGreen;
}
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKPinAnnotationView *)view
{
if ([theAnnotationSelected isKindOfClass:[MyAnnotation class]])
{
view.pinColor = MKPinAnnotationColorRed;
}
내 문제는 달랐지만 여기서 끝났습니다. 이 대답의 첫 부분이 나를 도왔다. 코드를 통해 모든 작업을 올바르게하고 있었지만 스토리 보드에서 생성 된 mapView 객체에 "사용자 위치 표시"가 표시되지 않았습니다. 아마 이것은 다른 누군가를 도울 것입니다! –