RACDisposable:它可以帮助我们取消订阅.信号发送完毕则取消订阅.
RACSubscriber(协议):订阅者(发送信号!)
#import "ViewController.h"
#import <ReactiveCocoa/ReactiveCocoa.h>
@interface ViewController ()
/** */
@property(nonatomic,strong)id<RACSubscriber> subscriber;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
//1.创建信号(冷信号!)
RACSignal * signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
//3.发送数据subscriber它来发送
[subscriber sendNext:@"呵呵哈哈嘿嘿"];
_subscriber = subscriber;
return [RACDisposable disposableWithBlock:^{
//只要信号取消订阅就会来这里
//清空资源!!
NSLog(@"哥么来了!!");
}];
}];
//2.订阅信号(热信号!!)
RACDisposable * disposable = [signal subscribeNext:^(id x) {
//x:信号发送的内容!!
NSLog(@"%@",x);
}];
//默认一个信号发送数据完毕就会主动取消订阅(可强引用subscriber协议测试,如果强引用情况下不走RACDisposable的block就证明默认一个信号发送数据完毕就会主动取消订阅)
//只要订阅者在,就不会自动取消订阅
//手动取消订阅
[disposable dispose];
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end