美文网首页
RAC订阅者释放机制

RAC订阅者释放机制

作者: 我是小胡胡123 | 来源:发表于2018-07-05 15:54 被阅读27次

释放顺序如下

订阅后,信号立即就释放了
-[RACDynamicSignal dealloc]
-[RACSignal(Testing) dealloc]

but!

////为什么偏要等block调用完,才会释放

-[RACPassthroughSubscriber dealloc]
-[RACCompoundDisposable dealloc]
-[RACSubscriber dealloc]

-[RACCompoundDisposable dealloc]
-[AFHTTPSessionManager dealloc]

测试代码如下:

  RACSignal *signal =   [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
        AFHTTPSessionManager*manaager=  [AFHTTPSessionManager manager];
        [manaager POST:@"https://www.baidu.com" parameters:nil progress:^(NSProgress * _Nonnull uploadProgress) {
            
        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            sleep(10);
            //[subscriber sendNext:@"111"];
           // [subscriber sendCompleted];
            [manaager invalidateSessionCancelingTasks:YES];
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            sleep(10);
           // [subscriber sendError:nil];
            [manaager invalidateSessionCancelingTasks:YES];
        }];
        return  nil;
    }];
    
    
    [signal subscribeNext:^(id  _Nullable x) {
        DDLogVerbose(@" 😊  %s ",__func__);
    } error:^(NSError * _Nullable error) {
        DDLogVerbose(@" 😊  %s ",__func__);
    } completed:^{
        DDLogVerbose(@" 😊  %s ",__func__);
    }];

相关文章

  • RAC订阅者释放机制

    释放顺序如下 订阅后,信号立即就释放了-[RACDynamicSignal dealloc]-[RACSignal...

  • RAC响应式框架的api文档

    RAC内存管理 RAC会维护一个全局的信号集合,一个或多于一个订阅者就可用,所有订阅者都被移除了,信号就被释放了。...

  • iOS-RAC综述

    上一篇我们探索了RAC的核心流程就是: 创建信号 订阅信号 订阅者发送信号 销毁 那么我们根据这些操作来看看RAC...

  • ReactiveCocoa解读-订阅信号

    信号(Signal)和订阅者(Subscriber)是在ReactiveCocoa( 下文简称RAC)的相关资料中...

  • ReactiveCocoa 信号

    信号源 在RAC中,信号源代表等是随着时间而改变的值流,这是对RAC最精准的概括。订阅者可以通过订阅信号源来获取这...

  • RACDisposable

    RACDisposable rac中用来销毁订阅者的类。其有4个子类: RACCompoundDisposable...

  • RAC(ReactiveCocoa)介绍(六)——RACSche

    上一篇介绍了一下RAC订阅信号中,方法实现RACCompoundDisposable真正的订阅者类的相关介绍。这一...

  • RAC 与 多线程

    07 - RAC与多线程 RAC怎么实现多线程并发处理订阅? RAC多线程模式怎么解决资源抢夺? RAC怎么实现取...

  • RAC之信号类--订阅者

    一.信号类:表示有数据产生 RACSignal RACDynamicSignal -> didSubscribe(...

  • Redis发布订阅

    发布订阅 Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布 者和订阅者不进行直接通信,发布者...

网友评论

      本文标题:RAC订阅者释放机制

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