RACSignal 的生命周期
Lifetime of RACSignal
通常情况下,只要存在对该对象的强引用,该对象就是存活的。
但是如果我没有对信号的强引用并且我订阅了,订阅会终止吗?
RACSignal *signal = ...;
[signal subscribeNext:^{
// Will this ever be called if I don't keep a strong reference to `signal`?
}];
当您订阅一个信号时,该回调实际上被添加到一个全局寄存器中,该寄存器还保持对信号的强引用。
要缩短其生命周期,您需要使用 takeUntil:
。
通常情况下,只要存在对该对象的强引用,该对象就是存活的。
但是如果我没有对信号的强引用并且我订阅了,订阅会终止吗?
RACSignal *signal = ...;
[signal subscribeNext:^{
// Will this ever be called if I don't keep a strong reference to `signal`?
}];
当您订阅一个信号时,该回调实际上被添加到一个全局寄存器中,该寄存器还保持对信号的强引用。
要缩短其生命周期,您需要使用 takeUntil:
。