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

你可能感兴趣的:(ReactiveCocoa map、flatMap、lift)