2009-10-19 13 views
6

Mam aplikację w tej chwili, która pokazuje różne szpilki na mapie. Próbowałem ustawienie mapView.showsUserLocation = YES; pokazać aktualną poz użytkownika, jednak ten rozbił moją aplikację („Program otrzymał sygnału: SIGABRT”) z następującym komunikatem o błędzie:Korzystanie z właściwości showUserLocation w MKMapView

Mon Oct 19 12:31:27 unknown Hull Ads[3111] <Error>: *** -[MKUserLocation counter]: unrecognized selector sent to instance 0x10ad60 
Mon Oct 19 12:31:27 unknown Hull Ads[3111] <Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[MKUserLocation counter]: unrecognized selector sent to instance 0x10ad60' 
Mon Oct 19 12:31:27 unknown Hull Ads[3111] <Error>: Stack: (...) 

To jest trochę mylące, ponieważ nie mam użyłeś MKUserLocation, czy jest to problem?

Aplikacja korzysta z CoreLocation dla innych celów niezwiązanych z tym problemem, jednak aplikacja reaguje w taki sam sposób, gdy CoreLocation nie jest już używana.

Jeśli ktokolwiek mógłby pomóc, to byłoby wspaniale!

Dzięki - James

+0

Moja tymczasowa poprawka dodaje nowy kod PIN i zmienia jego kolor, ale z pewnością powinien być dostępny pinezka Aktualna lokalizacja? –

+0

Dziękuję za pytanie. W końcu mi też pomogła! – Kenny

Odpowiedz

24

Pamiętaj, aby podać następujące informacje w tej metodzie:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { 
    if ([annotation class] == MKUserLocation.class) { 
     return nil; 
    } 
    ... 
} 

Mam nadzieję, że to już ustalone przez teraz;)

+0

Hej dziękuję, od jakiegoś czasu nie pracowałem nad tym projektem, ale spróbuję później wieczorem, dzięki! –

+0

Tak, to była poprawka, dzięki! Mam nadzieję, że pomoże to komuś innemu z tym samym problemem w przyszłości !! –

+0

Dzięki, pomogło mi to! – mservidio

1

Thanks BEREND za odpowiedzi pytanie i james.ingham o to pytanie! Od miesięcy szukam rozwiązania tego problemu, a ten wątek naprawił go dla mnie!

Sprawdzanie typu szpilki MKUserLocation byłoby najbardziej logiczną rzeczą do zrobienia. Ale kto to pamięta podczas implementacji metody viewForAnnotation. Nawet jeśli nie zamierzasz używać MKuserlocation w swojej aplikacji, bezpieczną praktyką jest zawsze sprawdzanie, aby uniknąć problemów w przyszłości.

+1

Witamy w przepełnieniu stosu –

Powiązane problemy