I'm currently registering a subscriber to a property signal like this:
[RACAble(self.test) subscribeNext:^(id x) {
NSLog(@"signal fired!");
}];
The default functionality is that it fires every single time self.test is changed, but I just want it to fire once, and then unsubscribe. Is there a "once" argument or modifier I can pass to RAC when I create this subscriber?
[[RACAble(self.test) take:1] subscribeNext:^(id x) {
NSLog(@"signal fired!");
}];
That might be helpful especially when you create nested subscriptions:
RACDisposable *subscription = [RACObserve(self, test) subscribeNext:^(id x) {
NSLog(@"signal fired!");
}];
[subscription dispose];
you can also do this (if you aren't into the whole brevity thing):
[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber){
RACDisposable *inner_disposer = [RACAble(self.test) subscribeNext:^(id x){
[subscriber sendNext:x];
[subscriber sendComplete];
}];
return [RACDisposable disposableWithBlock:^{
[inner_disposer dispose];
}];
}];