ReactiveObjc(II)

UIView 响应


//RAC(_label, text) ,通过RAC的宏来使用,更简化
RAC(_label, text) = _textField.rac_textSignal

//RACObserve 也是一个宏
RACObserve(self.view, frame) subscribeNext:^(id x){
    NSLog(@"");
}

ViewController.m


- (void)viewDidLoad{
      //self 调用者
      //_cmd 方法编号
      @weakify(self);  //使用这个宏,打断循环引用链条
      RACSignal *signal = [RACSignal createSignal: ^RACDisoable * _Nullable (id <RACSubscriber> _Nonull subscriber){
            @strongify(self);
           //这个时候就会发生循环引用,这个block属于Signal,而这个Signal又属于这个控制器ViewController的强引用的。
           //而这个block又做了对self的访问,它会给这个self加个strong,这就是循环引用造成的内存泄露了(堆内存泄露了)
           NSLog(@"%@", self);
           return nill;

}];
     //signal 是在栈中
      _signal = signal;
}

- (void)dealloc{
      NSLog(@"%s", __func__);
}


- (void) dismiss:(id) sender {
      [self dismissViewController:YES completion: nil];
}







回顾:ReactiveObjc(I)


参考资料:
ReactiveCocoa

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

友情链接更多精彩内容