RAC的映射分为两种:
- flattenMap
- map
主要是用于信号中的信号.
flattenMap的简单使用
//创建信号
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"];
Map的简单使用
//创建信号
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"];