gpt4 book ai didi

ios - 无法过滤 RACSignal 事件

转载 作者:行者123 更新时间:2023-11-29 02:31:32 25 4
gpt4 key购买 nike

我的 ViewController 包含一个 UISearchBar 并实现了 UISearchBarDelegate 协议(protocol)。我为 searchBartextDidChange: 创建了一个信号,它可以通过 subscribeNext 正确触发:

RACSignal *searchTextChangeSignal = [self rac_signalForSelector:@selector(searchBar:textDidChange:) fromProtocol:@protocol(UISearchBarDelegate)];

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

此时,我想将此过滤器的结果过滤为 1) 仅包含大于 3 个字符的文本,以及 2) 限制 300 毫秒。我的尝试:

[[searchTextChangeSignal filter:^(RACTuple *tuple) {
NSString *textEnteredIntoSearchBar = (NSString *)tuple.second;
return textEnteredIntoSearchBar.length > 3;
}] throttle:300];```

上面的代码不起作用。这些 block 永远不会执行。如果我用 subscribeNext 替换 filter 方法,subscribeNext block 会执行。此外,XCode 自动完成上面的 filter 方法,因此该方法可用。我在这里缺少什么吗?执行此操作的正确方法是什么?非常感谢任何帮助。

最佳答案

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

关于ios - 无法过滤 RACSignal 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26804262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com