我有一个属性recording
,如果YES
处于州UILongPressGestureRecognizer
或UIGestureRecognizerStateBegan
,则会更改为UIGestureRecognizerStateChanged
。
如何创建仅在recording
返回NO
而不是初始值时触发的信号?
答案 0 :(得分:5)
每次@YES
的值更改为self.recording
时,这会发送YES
,并忽略任何NO
:
RACSignal *mySignal = [RACObserve(self, recording) ignore:@NO];
这会跳过初始值,无论是NO
还是YES
,都会发送每个后续值(NO
或YES
):
RACSignal *mySignal = [RACObserve(self, recording) skip:1];
如果属性设置为新的(非初始)值,您可以使用NSKeyValueObservingOptionNew
对ReactiveCocoa KVOs属性进行更精细的控制,以便仅发送值:
RACSignal *mySignal = [self rac_valuesAndChangesForKeyPath:@"recording"
options:NSKeyValueObservingOptionNew
observer:self];
答案 1 :(得分:2)
您是否尝试使用skip:
方法跳过初始“否”信号?