Jas*_*ues 12 cocoa objective-c ios reactive-cocoa
我在viewDidLoad中创建了一个事件订阅者,如下所示:
[RACObserve(_authenticationView.passwordInput.textField, text) subscribeNext:^(NSString* text)
{
//handle this
}];
Run Code Online (Sandbox Code Playgroud)
只要textField.text属性发生更改(预期),它就会触发,但是它在创建时也会触发一次,或者触发初始值,这不是我想要的.
当然我可以过滤掉它,但我只想过滤掉第一个事件.我该怎么做呢?
要求:
..那么最干净的方法是什么?
jos*_*ber 21
如果你只是想跳过第一个值,只需坚持一下-skip:1:
[[RACObserve(_authenticationView.passwordInput.textField, text) skip:1] subscribeNext:^(NSString* text)
{
//handle this
}];
Run Code Online (Sandbox Code Playgroud)
您可以使用不同的方法:
-skip:1跳过第一个值。[[RACObserve(_authenticationView.passwordInput.textField, text) skip:1] subscribeNext:^(NSString* text) {
//handle this
}];
Run Code Online (Sandbox Code Playgroud)
-ignore:nil跳过初始零值。[[RACObserve(_authenticationView.passwordInput.textField, text) ignore:nil] subscribeNext:^(NSString* text) {
//handle this
}];
Run Code Online (Sandbox Code Playgroud)
-distinctUntilChanged跳过与先前相同的新值。[[RACObserve(_authenticationView.passwordInput.textField, text) distinctUntilChanged] subscribeNext:^(NSString* text) {
//handle this
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3369 次 |
| 最近记录: |