通知补充

作者: MarceauHe | 来源:发表于2016-04-07 16:19 被阅读88次

    通知注意事项

    • 一定要记得移除通知
    • 一定要在发布通知之前监听通知
    • 开发中的万能步骤:无论在哪个线程中发布通知,都在监听通知代码中获取主队列去更新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:监听到通知");
        }];
    
    

    相关文章

      网友评论

        本文标题:通知补充

        本文链接:https://www.haomeiwen.com/subject/elamlttx.html