iOS 通知和kvo中的线程问题
2017-02-21 13:20
281 查看
ios中的通知和kvo使用非常常见,通常我们都是在主线程添加观察者和发送通知,但是如果我们是在子线程发送通知呢?
测试代码:
接收通知- (void)viewDidLoad
{
[super
viewDidLoad];
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(notice)
name:@"test"
object:nil];
}
- (void)notice
{
}
发送通知
- (void)btnOnClick:(id)sender
{
[self
performSelectorInBackground:@selector(noticeOnthread)
withObject:nil];
}
- (void)noticeOnthread
{
[[NSNotificationCenter
defaultCenter] postNotificationName:@"test"
object:nil];
}
在- (void)notice
方法内添加断点,我们可以看到,函数执行的线程与发送的线程相同,KVO大家可以自己测试,结果相同,再测试下在子线程添加观察者,主线程发送通知,结果相同
注意:如果在接收通知的函数中有UI操作,请注意当前函数是否是在子线程
相关文章推荐
- 关于自定义通知事件的跨线程问题(转)
- IOS之KVO使用问题(一)
- 【Java并发编程】之十二:线程间通信中notifyAll造成的早期通知问题(含代码)
- iOS通知问题之:一眼就看懂的NSNotificationCenter应用
- iOS开发——UI进阶篇(五)通知、代理、kvo的应用和对比,购物车
- 关于自定义通知事件的跨线程问题
- iOS 观察者模式(KVC&KVO、通知)
- iOS 通知观察者的被调函数不一定运行在主线程
- iOS 通知观察者的被调函数不一定运行在主线程
- iOS 之单例,代理,通知,KVO,Block全能解析
- iphone ios 中监听、KVO、观察和通知的五种方法
- iOS中使用通知传递参数问题
- 【Java并发编程】之十二:线程间通信中notifyAll造成的早期通知问题(含代码)
- iOS注销通知问题
- iOS —— 通知、监测KVO
- ios中观察者模式与通知机制,及KVO
- 【Java并发编程】之十二:线程间通信中notifyAll造成的早期通知问题(含代码)
- ios app推送通知详细教程 四 实战问题解决
- ios-通知:闹钟之关于设置闹钟后,点击app图标进入程序不播放音乐的问题(已解决)
- iOS开发-Day24-OC KVC&KVO&通知