Früher, als ich etwas auf Snow Leopard (oder einem älteren Mac OS X) kompilieren musste und einen @selector verwendet habe, der auf Lion und höher verfügbar ist, habe ich etwas Ähnliches gemacht:
if([foo respondsToSelector:@selector(awesomeLionSelector)]) {
[foo awesomeLionSelector]
}
Und das hat super funktioniert. Also versuche ich jetzt das Gleiche für eine neue Methode zu machen, die einen Float-Wert zurückgibt, aber die folgende Zeile:
float f = [foo awesomeLionSelectorWhichReturnsFloat];
wirft einen Kompilierungsfehler: "cannot convert 'objc_object*' to 'float' in assignment". Das liegt daran, dass der Compiler nichts von der Methode weiß und einen Rückgabetyp von 'id' annehmen muss.
Wie kann man das richtig beheben?