#import "ViewController.h"
#import <ReactiveObjC.h>
#import <RACReturnSignal.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//flattenMap 一般用于信号中的信号
RACSubject * signalOfSignal = [RACSubject subject];
RACSubject * signal = [RACSubject subject];
//订阅信号
// [signalOfSignal subscribeNext:^(RACSignal * x) {
// [x subscribeNext:^(id _Nullable x) {
// NSLog(@"%@",x);
// }];
// }];
// [signalOfSignal.switchToLatest subscribeNext:^(id _Nullable x) {
// NSLog(@"%@",x);
// }];
[[signalOfSignal flattenMap:^__kindof RACSignal * _Nullable(id _Nullable value) {
return value;
}] subscribeNext:^(id _Nullable x) {
NSLog(@"%@",x);
}];
// [bindSignal subscribeNext:^(id _Nullable x) {
// NSLog(@"%@",x);
// }];
//发送信号
[signalOfSignal sendNext:signal];
[signal sendNext:@"123"];
}
-(void)mapDemo{
//创建信号
RACSubject * subject = [RACSubject subject];
//绑定
[[subject map:^id _Nullable(id _Nullable value) {
//返回的数据就是需要处理的数据
return [NSString stringWithFormat:@"处理数据%@",value];
}] subscribeNext:^(id _Nullable x) {
NSLog(@"%@",x);
}];
//发送数据
[subject sendNext:@"123"];
[subject sendNext:@"321"];
}
-(void)flattenMapDemo{
//创建信号
RACSubject * subject = [RACSubject subject];
//绑定信号
RACSignal * bindSignal = [subject flattenMap:^__kindof RACSignal * _Nullable(id _Nullable value) {
//block:只要源信号发送内容就会调用
//value:就是源信号发送的内容
value = [NSString stringWithFormat:@"处理数据:%@",value];
//返回信号用来包装修改过的内容
return [RACReturnSignal return:value];
}];
//订阅绑定信号
[bindSignal subscribeNext:^(id _Nullable x) {
NSLog(@"%@",x);
}];
//发送数据
[subject sendNext:@"123"];
}
5-1 RAC映射
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 2018.2.3 目标:身心健康,财富丰盛 好种子: 1早起健康早餐,种下健康的种子,回向群里姐妹及家人身心健康 ...
- java异常概念 java异常分类 异常的捕获和处理 运行期出现的错误是最难解决的. 观察错误名字和行号最重要! ...