1醉锄、什么是RACDisposable
RACDisposable:用于取消訂閱或者清理資源,當(dāng)信號發(fā)送完成或者發(fā)送錯誤的時候浙值,就會自動觸發(fā)它檩小。
使用場景:不想監(jiān)聽某個信號時开呐,可以通過它主動取消訂閱信號规求。
代碼如下:
- (void)viewDidLoad {
[super viewDidLoad];
// 1.創(chuàng)建信號
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber ) {
// _subscriber = subscriber;
// 3.發(fā)送信號
[subscriber sendNext:@"123"];
return [RACDisposable disposableWithBlock:^{
// 只要信號取消訂閱就會來這
// 清空資源
NSLog(@"信號被取消訂閱了");
}];
}];
// 2.訂閱信號
RACDisposable *disposable = [signal subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
// 1.創(chuàng)建訂閱者,保存nextBlock
// 2.訂閱信號
// 默認一個信號發(fā)送數(shù)據(jù)完畢們就會主動取消訂閱.
// 只要訂閱者在,就不會自動取消信號訂閱
// 取消訂閱信號
[disposable dispose];
}