通知补充

通知注意事项

  • 一定要记得移除通知
  • 一定要在发布通知之前监听通知
  • 开发中的万能步骤:无论在哪个线程中发布通知,都在监听通知代码中获取主队列去更新UI

多线程中使用通知

监听通知的两种方式

  • 监听通知方式一

  • 在子线程监听通知,在子线程发布通知,通知代码在子线程中执行

  • 在主线程监听通知,在子线程发布通知,通知代码在子线程中执行

  • 在主线程发布通知,那么通知代码在主线程中调用

  • 总结:在哪个线程中发布通知,监听通知后要调用的方法就在哪个线程中执行,也就是只与发布线程有关

// 监听通知:方式一
    /*
     Observer:谁观察通知
     selector:监听到通知,就会调用这个方法
     name:通知名称
     object:谁发出通知
     */
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reciveNote) name:@"note" object:nil];
  • 监听通知方式二
    // 监听通知 方式二
    /*
     name:通知名称
     object:谁发出通知
     queue: 确定Block在哪个线程调用 队列,传入nil,block就会直接运行在发布通知线程中
     通常传[NSOperationQueue mainQueue],因为在这里可能会做一些刷新UI的操作
     usingBlock:只要监听到通知,就会自动调用这个block
     */
    _observer = [[NSNotificationCenter defaultCenter] addObserverForName:@"note" object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {

        NSLog(@"%@",self);
        NSLog(@"%@",[NSThread currentThread]);
        NSLog(@"调用了block:监听到通知");
    }];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,095评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,073评论 19 139
  • 前言:开发中难免会遇到设置lable根据文字来调整高度和换行,具体做法如下. sizethatfits方法 设置l...
    飞扬的青春8780975阅读 3,725评论 0 1
  • 数九隆冬 正午的天空 我抬头 看到了一条彩虹 不敢相信 我以为花了眼睛 真真切切的 它是彩虹 我有点懵懂 不知道隆...
    秋水伊人_44ad阅读 3,858评论 0 1
  • 你说你生性渴望自由 不爱被束缚 不爱别人关心你 哪有人不爱被关心的 我知道你只是不爱我了
    吹嫂阅读 1,229评论 0 0

友情链接更多精彩内容