我有一个属性 ,recording如果YESaUILongPressGestureRecognizer处于状态UIGestureRecognizerStateBegan或UIGestureRecognizerStateChanged.
如何创建一个仅在recording返回NO而不是初始值时触发的信号?
我有一个属性 ,recording如果YESaUILongPressGestureRecognizer处于状态UIGestureRecognizerStateBegan或UIGestureRecognizerStateChanged.
如何创建一个仅在recording返回NO而不是初始值时触发的信号?
这会将@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];
您是否尝试过使用该skip:方法跳过最初的“NO”信号?