RACDisposable
1:RACDisposable:它可以帮助我们取消订阅.信号发送完毕了 ,失败了.
cocopoods使用这个命令进行安装第三方库,我的项目是使用的这些第三方库:
platform :ios, ‘8.0’
use_frameworks!
target '002-RAC' do
pod 'ReactiveObjC'
pod 'Masonry'
pod 'SDWebImage'
end
视频上使用的是这个第三方框架:
RAC的cocopoods配置.png
案列代码
#import "ViewController.h"
#import <ReactiveCocoa/ReactiveCocoa.h>
@interface ViewController ()
/** */
@property(nonatomic,strong)id<RACSubscriber> subscriber;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//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);
}];
//默认一个信号发送数据完毕就会主动取消订阅
//只要订阅者在,就不会自动取消订阅
//手动取消订阅
[disposable dispose];
}