RAC初识--003--RACRACDisposable
2017-10-12 00:42
274 查看
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
相关文章推荐
- rac初识之冷热信号
- RAC初识--004--RACSubject
- 初识RAC:001--Block简单使用
- 初识RAC-002--RACSignal类
- rac初识
- iOS开发 ☞ 初识RAC
- 初识Firebug 全文 — firebug的使用
- oracle 11g rac 恢复到单实例
- PHP之初识PHP(1)
- rac集群 oracle和grid用户 ssh等效性配置
- Oracle 11gR2 RAC 数据库不能连接(ORA-12537: TNS:connection closed)的解决
- 003
- 初识block
- 初识 Google API
- 初识运维--小白的自我认知
- 1.初识centos 7
- 初识Spring之IOC
- vbox4.2 + oraclelinux 6.2(32位版本) + oracle11 搭建RAC 环境(三)
- 初识Hibernate框架
- 初识Redis与Memcached