RACSignal 的生命周期

Lifetime of RACSignal

通常情况下,只要存在对该对象的强引用,该对象就是存活的。

但是如果我没有对信号的强引用并且我订阅了,订阅会终止吗?

RACSignal *signal = ...;
[signal subscribeNext:^{
   // Will this ever be called if I don't keep a strong reference to `signal`?
}];

当您订阅一个信号时,该回调实际上被添加到一个全局寄存器中,该寄存器还保持对信号的强引用。 要缩短其生命周期,您需要使用 takeUntil: