0

我有一个属性 ,recording如果YESaUILongPressGestureRecognizer处于状态UIGestureRecognizerStateBeganUIGestureRecognizerStateChanged.

如何创建一个仅在recording返回NO而不是初始值时触发的信号?

4

2 回答 2

5

这会将@YES每次self.recording的值更改发送到YES,并忽略任何NOs:

RACSignal *mySignal = [RACObserve(self, recording) ignore:@NO];

这将跳过初始值,无论它是NOor YES,并且会发送每个后续值(要么NOor YES):

RACSignal *mySignal = [RACObserve(self, recording) skip:1];

您可以对 ReactiveCocoa KVO 如何使用您的属性进行更细粒度的控制,NSKeyValueObservingOptionNew以便仅在属性设置为新(而非初始)值时发送值:

RACSignal *mySignal = [self rac_valuesAndChangesForKeyPath:@"recording" 
                                                   options:NSKeyValueObservingOptionNew
                                                  observer:self];
于 2013-11-27T16:46:00.853 回答
2

您是否尝试过使用该skip:方法跳过最初的“NO”信号?

于 2013-11-26T17:33:02.237 回答