Различие между performSelector, performSelectorOnMainThread и performSelectorInBackground

Между чем различие

performSelectorOnMainThread

performSelectorInBackground

performSelector

Спасибо

9
задан iPhoneDev 14 July 2010 в 06:53
поделиться

1 ответ

performSelector будет просто делать то, что он говорит, обычно вы должны использовать это, когда хотите выполнить селектор, используя его имя как NSString, это полезно в ситуациях, когда вы программно создаете имя селектор. Если вы знакомы с Java, вы можете сравнить это с отражением.

performSelectorInBackground будет выполнять селектор асинхронно в новом потоке в фоновом режиме, так что вы можете отправлять длинные задачи, не блокируя свой пользовательский интерфейс.

performSelectorOnMainThread просто выполнит селектор в основном потоке вашего приложения в соответствии с его заявлением.Это может привести к зависанию пользовательского интерфейса, вы можете зарезервировать его для выполнения задач, которые явно обновляют пользовательский интерфейс

РЕДАКТИРОВАТЬ:

Еще немного о performSelectorOnMainThread , это наиболее полезно, когда вы звоните это из потока, работающего в фоновом режиме. Например, у вас есть поток, обрабатывающий задачу в фоновом режиме, и вы хотите обновить метку состояния, только потоки, запущенные в основном потоке, будут обновлять пользовательский интерфейс, поэтому вы должны вызвать свой селектор, который обновляет метку состояния, используя performSelectorOnMainThread

20
ответ дан 4 December 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: