NSNotificationCenter 注意
Posted 大醉和尚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSNotificationCenter 注意相关的知识,希望对你有一定的参考价值。
- 成对出现
-
意思很简单,
NSNotificationCenter
消息的接受线程是基于发送消息的线程的。也就是同步的,因此,有时候,你发送的消息可能不在主线程,而大家都知道操作UI必须在主线程,不然会出现不响应的情况。所以,在你收到消息通知的时候,注意选择你要执行的线程。下面看个示例代码//接受消息通知的回调 - (void)test { if ([[NSThread currentThread] isMainThread]) { NSLog(@"main"); } else { NSLog(@"not main"); } dispatch_async(dispatch_get_main_queue(), ^{ //do your UI }); } //发送消息的线程 - (void)sendNotification { dispatch_queue_t defaultQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(defaultQueue, ^{ [[NSNotificationCenter defaultCenter] postNotificationName:@"test" object:nil]; }); }
文/JamesYu(简书作者)
原文链接:http://www.jianshu.com/p/a4d519e4e0d5
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
以上是关于NSNotificationCenter 注意的主要内容,如果未能解决你的问题,请参考以下文章
iOS之 利用通知(NSNotificationCenter)获取键盘的高度,以及显示和隐藏键盘时修改界面的注意事项
iOS中通知中心NSNotificationCenter应用总结
Swift 3 NSNotificationCenter 键盘将显示/隐藏
NSnotificationCenter 正确使用姿势, removeObject 探索