2010-07-14 3 views

Antwort

20

perform einfach tun, was es sagt, in der Regel werden Sie Verwenden Sie dies, wenn Sie ein Se ausführen möchten Lektor, der seinen Namen als NSString verwendet, ist in Situationen hilfreich, in denen Sie den Namen eines Selektors programmatisch erstellen. Wenn Sie mit Java vertraut sind, könnten Sie es locker mit der Reflexion vergleichen.

performSelectorInBackground die Wähler asynchron in einem neuen Thread im Hintergrund ausgeführt, so dass Sie

UI ohne Perren lange Aufgaben abzuschicken kann

performSelectorOnMainThread einfach die Wähler auf Ihre Anwendungen Haupt-Thread durchführen, wie es heißt. Dies hat das Potenzial, die ui Einfrieren, könnte behalten Sie es Aufgaben, die die ui explizit

EDIT aktualisiert:

Einige mehr auf performSelectorOnMainThread, dies ist besonders nützlich, wenn Sie Sie es von einem Thread ruft im Hintergrund laufen. Ein Beispiel wäre, dass ein Thread eine Aufgabe im Hintergrund verarbeitet und Sie eine Statusbeschriftung aktualisieren möchten. Nur Threads, die im Hauptthread ausgeführt werden, aktualisieren die Benutzeroberfläche, sodass Sie den Selektor aufrufen, der die Statusbeschriftung mithilfe von performSelectorOnMainThread

+0

aktualisiert Bro, was meinst du mit dem Potenzial der Einfrieren der UI ?? –

+0

Alle UI-Tasks und -Ereignisse werden im Hauptthread ausgeführt. Wenn Sie sie mit einer anderen lang andauernden Aufgabe blockieren, "friert" Ihre Benutzeroberfläche ein und Ihr Benutzer kann erst nach Abschluss dieser Aufgabe mit Ihrer App interagieren. –

+0

Down Abstimmung fahren vorbei? Warum die down vote? –

Verwandte Themen