2012-04-03 13 views

Antwort

1

Von Apples Dokumentation:

der perform: Methode ermöglicht es Ihnen, Nachrichten zu senden, die nicht erst zur Laufzeit bestimmt werden

Längere Geschichte:

Sie Nachrichten an Objekte senden ohne vorher zu wissen, ob das Objekt diese bestimmte Methode implementiert. Zum Beispiel:

NSString *astring = @"test"; 

[test dance]; // Doesn't compile 
[test performSelector:@selector(dance)]; // Doesn't make sense but compiles 
+0

danke .. das macht Sinn ... könntest du mir ein Beispiel geben, wo ich performSelector auf ein Objekt anwenden würde, das eine Methode implementiert? – learner2010

+1

Zum Beispiel, wenn Sie eine Methode im Hintergrund ausführen wollen: '[self performSelectorInBackground: @selector (myMethod) withObject: nil];' – Alladinian

+0

danke für die Antwort. also wann würde ich performSelector im Vergleich zum Aufruf einer Methode verwenden? – learner2010

0

AFAIK, den Selektor ist ein Weg, um die callback method als zu erklären, was wir getan haben auf Java, C#, ... Angenommen, Sie Bibliothek A entwickeln, die eine asynchrone berechnen tun und die Rück Ergebnis, wenn es getan. Zur Entwicklungszeit wissen Sie nicht, welche Rückrufmethode Sie aufrufen sollten, wenn die Berechnung durchgeführt wird. Sie können also die Bibliothek dazu veranlassen, einen selector als Eingabeparameter zu erhalten und später performSelector, um Callback-Methoden aufzurufen.

Hoffe, das hilft.

Verwandte Themen