iOS 接收通知的线程一定是主线程吗?

问题:在主线程中A对象监听到通知B后,调用函数functionX。然后我们开启一条子线程,在子线程中发出通知B。现在问A对象执行方法functionX时是在哪个线程?

In a multithreaded application, notifications are always delivered in
the thread in which the notification was posted, which may not be the
same thread in which an observer registered itself.
官方文档说:在多线程的程序中,通知会在post通知时所在的线程被传达,这就导致了观察者注册通知的线程和收到通知的线程不在一个线程。

经过Xcode执行后functionX是在发送通知的子线程执行的。这样的话,如果在子线程中进行UI操作的话,就会出现崩溃。因此在这种情况下,需要回到主线程进行操作。

你可能感兴趣的:(oc语言,多线程)