我在viewDidLoad中创建了一个事件订阅者,如下所示:
[RACObserve(_authenticationView.passwordInput.textField, text) subscribeNext:^(NSString* text)
{
//handle this
}];
只要textField.text属性更改(预期),它就会触发,但是当创建时它会触发一次,或者对于初始值触发,这不是我想要的。
当然我可以过滤掉它,但我只想过滤掉第一个事件。我该怎么做呢?
要求:
。 。那么最干净的方法是什么?
答案 0 :(得分:21)
如果您只想跳过第一个值,只需在-skip:1
中加上:{/ p>
[[RACObserve(_authenticationView.passwordInput.textField, text) skip:1] subscribeNext:^(NSString* text)
{
//handle this
}];
答案 1 :(得分:1)
您可以使用不同的方法:
-skip:1
跳过第一个值。[[RACObserve(_authenticationView.passwordInput.textField, text) skip:1] subscribeNext:^(NSString* text) {
//handle this
}];
-ignore:nil
跳过初始nil值。[[RACObserve(_authenticationView.passwordInput.textField, text) ignore:nil] subscribeNext:^(NSString* text) {
//handle this
}];
-distinctUntilChanged
跳过等于先前的新值。[[RACObserve(_authenticationView.passwordInput.textField, text) distinctUntilChanged] subscribeNext:^(NSString* text) {
//handle this
}];