美文网首页
(二)、iOS RAC - RACDisposable

(二)、iOS RAC - RACDisposable

作者: Buddha_like | 来源:发表于2019-03-25 17:29 被阅读0次
 //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
     */

相关文章

网友评论

      本文标题:(二)、iOS RAC - RACDisposable

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