ReactiveCocoa map、flatMap、lift

Map

  • 每个Signal Producer保存了上一个Signal Producer的引用(通过startHandler的closure保存)
  • 最顶端的signal Producer保存了pipe产生的observer的引用
  • observer保存了signal的引用
  • signal 保存了所有observers的引用
  • observers很可能就是下一级的signal
  • 这样一来每次 pipe产生的observer被发信息
  • 对应的signal就知道了,传给所有的observers
  • observers有map产生的signal,这样一来他们也就知道了
  • 一直到最末段传给了最后一个observer(我们定义其行为)

FlatMap

  • 其实就是observers里可能有个observer的行为是形成一个signal Producer并把它start了
    (过程由用户提供, 且每次接受一个event就形成一个)然后再来个observer监听所有产生的signal Producer 产生的所有的event

Lift

  • 其实就是给出一个signal producer每次上一个signal producer产生一个signal,就把它transform(用户提供)了, 然后把transform过得signal传给 pipe 产生的 observer
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容