我有一个属性 ,recording
如果YES
aUILongPressGestureRecognizer
处于状态UIGestureRecognizerStateBegan
或UIGestureRecognizerStateChanged
.
如何创建一个仅在recording
返回NO
而不是初始值时触发的信号?
我有一个属性 ,recording
如果YES
aUILongPressGestureRecognizer
处于状态UIGestureRecognizerStateBegan
或UIGestureRecognizerStateChanged
.
如何创建一个仅在recording
返回NO
而不是初始值时触发的信号?
这会将@YES
每次self.recording
的值更改发送到YES
,并忽略任何NO
s:
RACSignal *mySignal = [RACObserve(self, recording) ignore:@NO];
这将跳过初始值,无论它是NO
or YES
,并且会发送每个后续值(要么NO
or YES
):
RACSignal *mySignal = [RACObserve(self, recording) skip:1];
您可以对 ReactiveCocoa KVO 如何使用您的属性进行更细粒度的控制,NSKeyValueObservingOptionNew
以便仅在属性设置为新(而非初始)值时发送值:
RACSignal *mySignal = [self rac_valuesAndChangesForKeyPath:@"recording"
options:NSKeyValueObservingOptionNew
observer:self];
您是否尝试过使用该skip:
方法跳过最初的“NO”信号?