首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法过滤RACSignal事件

无法过滤RACSignal事件
EN

Stack Overflow用户
提问于 2014-11-07 15:13:42
回答 1查看 198关注 0票数 0

我的ViewController包含一个UISearchBar并实现了UISearchBarDelegate协议。我为searchBartextDidChange:创建了一个用subscribeNext正确触发的信号

代码语言:javascript
复制
RACSignal *searchTextChangeSignal = [self rac_signalForSelector:@selector(searchBar:textDidChange:) fromProtocol:@protocol(UISearchBarDelegate)];

[searchTextChangeSignal subscribeNext:^(id x){
  // This works.
}];

在这一点上,我想将这个过滤器的结果过滤到1)只包含大于3个字符的文本,以及2)控制300 ms的文本。我的尝试:

代码语言:javascript
复制
[[searchTextChangeSignal filter:^(RACTuple *tuple) {
  NSString *textEnteredIntoSearchBar = (NSString *)tuple.second;
  return textEnteredIntoSearchBar.length > 3;
}] throttle:300];```

上面的代码不工作。这些块永远不会被执行。如果我将filter方法替换为subscribeNext,那么subscribeNext块就会执行。此外,XCode自动完成了上面的filter方法,因此该方法是可用的。这里有什么东西我遗漏了吗?正确的方法是什么?任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-07 16:15:10

缺少的理解是,信号在订阅之前不会执行任何工作。在节流阀之后调用一个订阅方法,您将看到数据开始流动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26804262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档