Was ist der Unterschied zwischenUnterschied zwischen perform, performSelectorOnMainThread und performSelectorInBackground
performSelectorOnMainThread ist
performSelectorInBackground
perform
Dank
Was ist der Unterschied zwischenUnterschied zwischen perform, performSelectorOnMainThread und performSelectorInBackground
performSelectorOnMainThread ist
performSelectorInBackground
perform
Dank
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 kannperformSelectorOnMainThread 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
aktualisiert Bro, was meinst du mit dem Potenzial der Einfrieren der UI ?? –
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. –
Down Abstimmung fahren vorbei? Warum die down vote? –