2017-01-11 6 views
0

Когда мы addTarget на UIButton или вид, например, с кодом ниже,IOS - В какой нить IOS селекторы запустить

cancelButton.addTarget(self, action: #selector(MyViewController.onCancelPressed), for: UIControlEvents.touchUpInside) 

, в котором поток onCancelPressed код работает? Я предполагаю, что они работают по основному потоку, но всегда ли уверены, что они никогда не запускаются из другого потока? на других руках, я должен положить ui stuffs в основной блок в onCancelPressed или нет.

ответ

2

Вызовы для селекторов запускаются в основном потоке, так как UIButtons создаются в основном потоке. Вызов функций также происходит из основного потока, даже если вы добавляете селектор цели из вторичного потока. Следовательно, нет необходимости добавлять основной блок в функцию селектора.