Ja! In Objective-C werden Funktionszeiger als Selektoren bezeichnet. Wenn Sie eine Methode wie folgt definiert sind:
- (void)myFunctionWithObject:(NSObject*)obj otherObject:(NSNumber*)obj2
{
}
Der Wähler wie folgt erklärt:
@selector(myFunctionWithObject:otherObject:)
Um einen Selektor auf einem Objekt durchführen, können Sie verwenden:
[object performSelector:@selector(myFunction)];
oder
[object performSelector:@selector(myFunctionTakingParameter:) withObject: o];
Die se Der Lektor-Datentyp ist besonders nützlich für Threads und Timer, wo Sie einen Thread senden und ihm einen Selektor für die Nachricht bereitstellen können, die er aufrufen soll. Wenn Sie ein Array von Selektoren (oder eine Dispatch-Tabelle) erstellen müssen oder Selektoren mit mehreren Parametern aufrufen müssen, können Sie die NSInvocation-Klasse verwenden. Es bietet einen Wrapper für einen Selektor und ermöglicht es Ihnen, tatsächliche Argumente anzugeben.
Sie sollten bedenken, dass Objective-C bereits auf einer voll dynamischen Methode Dispatch-Tabelle basiert. Es hört sich so an, als ob die Pflege von Funktionszeigern mithilfe von Selektoren gut funktioniert, wenn Sie nur einen Verweis auf eine Funktion benötigen.
Oh, richtig! Jason, vielen Dank! –