ReactiveCocoa / ReactiveViewModel

Model-View-ViewModel, using ReactiveCocoa
MIT License
1.96k stars 259 forks source link

Why forwardSignalWhileActive:(RACSignal *)signal subscribes only on the next and error, but not completed? #38

Closed larryonoff closed 9 years ago

jspahrsummers commented 9 years ago

This isn't true, so can you please describe what problem you're actually encountering in detail?

larryonoff commented 9 years ago

I'm not an expert in ReactiveCocoa, I'm just assuming. According to this line of code there is subscribeNext:error: signal to enclose is subscribed only on next and error. So if signal to enclose sends completed it isn't forwarded from forwardSignalWhileActive:.

Let me explain my goal in detail. I have a signal which should be unsubscribed from when model isn't active and when the model is active subscribed on the signal again. And this signal should be command signal. So I created the signal (let's call it signalToEnclose), enclosed it into forwardSignalWhileActive: signal and made it a command signal then. As result when signalToEnclose sends completed, the command says that it's still executing, but it shouldn't.

PS. I've solved my issue in another way, but I'm still interested in understanding of forwardSignalWhileActive: behavior.

Thank you.

jspahrsummers commented 9 years ago

forwardSignalWhileActive: doesn't care if the provided signal completes because part of its contract is that it may re-subscribe to that signal any number of times.

If it actually forwarded completion events, it wouldn't be able to resubscribe, because the signal would be done forever.