iOS 接收通知的线程一定是主线程吗?
2018-03-16 18:32
1131 查看
问题:在主线程中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操作的话,就会出现崩溃。因此在这种情况下,需要回到主线程进行操作。
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操作的话,就会出现崩溃。因此在这种情况下,需要回到主线程进行操作。
相关文章推荐
- iOS 通知观察者的被调函数不一定运行在主线程
- iOS 通知观察者的被调函数不一定运行在主线程
- iOS中的crash防护(四)NSNotificationCenter指定线程接收通知
- iOS 通知观察者的被调函数不一定运行在主线程
- iOSAPNs在测试环境下可以用,在正式环境下接收不到推送通知
- IOS 回调/通知主线程刷新-Objective-c,JavaScript交互篇
- iOS开发中接收不到通知
- C#子线程执行完后通知主线程的方法
- iOS 本地推送通知和接收通知及其跳转控制总结
- iOS 极光推送接收通知
- iOS - scrollView与headerView的视差滚动实现思路 scrollView 可接收通知啊
- iOS 接收新消息通知调用系统声音 震动
- C#子线程执行完后通知主线程
- 一个独立的资源加载线程,接收主线程的资源加载请求的思路
- iOS接收push通知
- iOS开发中的错误整理,再一次整理通过通知中心来处理键盘,一定记得最后关闭通知中心
- iOS创建线程方式(以及回到主线程, 以及延时之行代码)
- c#子线程执行完怎么通知主线程
- 主线程中一定不能放耗时操作,必须要开子线程,比如下载文件,不然会不让你拿到输入流--报错显示android.os.NetworkOnMainThreadException
- 【Android笔记-异常-4】定义一个临时的数组变量承接数据,ListView的数据以及通知数据更新要放到同一个线程(主线程)。避免出现异常"The content of the adapter