Die Klasse "MKAnnotation" hat eine Methode namens "setCoordinate".
Die Klasse "MKUserLocation" ist eine Subclass von "MKAnnotation".
Sie kann die Methode "setCoordinate" der Basisklasse nutzen, hat aber selbst keine Methode "setCoordinate" deklariert.
Die NSObject Klassenmethode "respondsToSelector" prüft, ob eine Klasse eine bestimmte Methode unterstützt (ohne dabei durch die Vererbung zu wandern).
Dein "viewForAnnotation" ist von NSObject abgeleitet, kennt also die Methode "respondsToSelector".
Du brauchst also einfach nur zu prüfen, ob
Code:
viewForAnnotation.respondsToSelector(selector(setCoordinate:))
True oder False zurückgibt.
Die Funktion Selector() liegt im Cocoa Foundation Framework.
Wenn True, dann "MKAnnotation" sonst "MKUserLocation".