(二)、iOS RAC - RACDisposable

 //1.创建信号量
    
    RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
        
        NSLog(@"创建信号量");
        
        //3.发送信息
        [subscriber sendNext:@"Im send next data"];
        
        self.able = subscriber;
        NSLog(@"那我啥时候运行");
        
        return [RACDisposable disposableWithBlock:^{
            NSLog(@"disposable");
        }];
    }];
    
    //2.订阅信号量
    RACDisposable *disposable = [signal subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    }];
    
        //主动触发 取消订阅
    [disposable dispose];
    
    /*
     情形一:
     1 订阅者被销毁
     2 RACDisposable 调用dispose取消订阅
     
     情形二:
     1 订阅者被强引用,不调用dispose
     2 RACDisposable 不调用dispose
     
     情形三:
     1 在发送订阅的时候会给我们一个RACDisposable对象,我们拿到它,然后调用 [disposable dispose]; 这个方法
     2 就算在强引用订阅者的情况下,主动调用dispose也会调用block
     */
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容