//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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 前言 这篇文章是iOS 基于MVVM + RAC + ViewModel-Based Navigation的微信开...
- github源代码地址 RACSubject RACSubject与RACSignal在发送信号这件事上是基本相同...
- rac_liftSelector方法的作用 应用场景:当一个页面有多个请求,所以请求完毕后才更新UI,用以下方式只...