美文网首页
Rac集合操作与绑定

Rac集合操作与绑定

作者: 我是小胡胡123 | 来源:发表于2018-02-11 15:27 被阅读14次

第一大类:

merge,for/merge
concat,for/concat

zip,join/zipWith 打包元组+reduce解包
combineLatest,join/combineLatestWith 打包元祖+reduce解包

第二大类:
map --> 自动对block返回的值加上class return 即升高维度的操作。
flattenMap --> 不对block返回值的附加操作。仅判断如果是空转化为class empty其实就是降维了
flatten: --> 降到指定维度
flatten --> 降维

bind




    // mapReplace->  map (class return:block(value))->  flattenMap(block(value)) -> bind
         flatten (value) ->   



- (__kindof RACStream *)flattenMap:(__kindof RACStream * (^)(id value))block {
    Class class = self.class;

    return [[self bind:^{
        return ^(id value, BOOL *stop) {
            id stream = block(value) ?: [class empty];
            NSCAssert([stream isKindOfClass:RACStream.class], @"Value returned from -flattenMap: is not a stream: %@", stream);

            return stream;
        };
    }] setNameWithFormat:@"[%@] -flattenMap:", self.name];
}

- (__kindof RACStream *)flatten {
    return [[self flattenMap:^(id value) {
        return value;
    }] setNameWithFormat:@"[%@] -flatten", self.name];
}

- (__kindof RACStream *)map:(id (^)(id value))block {
    NSCParameterAssert(block != nil);

    Class class = self.class;
    
    return [[self flattenMap:^(id value) {
        return [class return:block(value)];
    }] setNameWithFormat:@"[%@] -map:", self.name];
}

- (__kindof RACStream *)mapReplace:(id)object {
    return [[self map:^(id _) {
        return object;
    }] setNameWithFormat:@"[%@] -mapReplace: %@", self.name, RACDescription(object)];
}




相关文章

  • Rac集合操作与绑定

    第一大类: merge,for/mergeconcat,for/concat zip,join/zipWith ...

  • ReactiveCocoa用法示例(一)

    知识点 给tableview添加command绑定支持的分类方法 [RACSignal merge:]操作 RAC...

  • RAC集合及其他用法

    RAC集合类: RACTuple:元组,类似NSArray,用来包装值 RACSequence:RAC中集合,用于...

  • RAC的常见应用场景

    这里写RAC常见的应用场景 RAC集合 代替KVO 监听事件 代替通知 监听文本框5.代理 RAC集合 RACTu...

  • Rac迭代

    Rac迭代、绑定、JoinRACStream、RACSignal、RACSequence 1、RACSequenc...

  • RAC集合

    元组 RACTuple *tuple = [RACTuple tupleWithObjectsFromArray...

  • RAC 集合

    RACTuple:元组类,类似NSArray,用来包装值. RACSequence:RAC中的集合类,用于代替NS...

  • RAC集合

  • RAC集合

    在RAC中可以使用RACSequence,来进行对数组以及字典的快速便利 1、RAC对字典进行遍历 对字典遍历出来...

  • RAC集合

    RAC中有几种常用的集合类 RACTuple 元组类,也相当于RAC中的数组 常用创建方式 案例 RACSeque...

网友评论

      本文标题:Rac集合操作与绑定

      本文链接:https://www.haomeiwen.com/subject/mpoktftx.html