草庐IT

RACCommand

全部标签

ios - ReactiveCocoa : How to prevent RACSignal from being executed twice in parallel?

在我的应用程序中,我使用ReactiveCocoa和AFNetworking-Extension进行API调用。对于每个API端点,我都有一个启动API请求并返回RACSignal的方法。根据API调用的结果,我主要填充了UITableViews。有多个事件导致每个API请求重新加载/刷新View:在应用程序启动时viewDidAppear在每个标签中当用户使用PullToRefresh时当应用自行决定随时获取新数据时如何防止在当前正在执行的同一端点请求完成之前执行新的API请求?我知道,我可以使用“throttle”来限制用户输入,例如点击事件。但正如已经提到的,有几种情况可以启动新

ios - 将 RACCommand 组合成一个共同结果的最佳方法是什么?

使用ReactiveCocoa2.0,是否有更好的方法来执行以下操作,而无需具体化/取消具体化,并且仍然能够从3个信号中的任何一个捕获错误,而无需重复代码?有3个登录按钮。每个都返回一个对应于异步“登录”API调用的信号。一旦完成,它们将返回用户对象、错误和/或完成。//Loginsignals_loginButton.rac_command=[[RACCommandalloc]initWithEnabled:loginValidsignalBlock:^RACSignal*(idinput){return[[APIdoLogin:_usernameField.textpassword

ios - RxSwift 中 RACCommand 的等价物是什么?

我有一个View和一个View模型。View包含一个按钮,每次用户按下它时,我都希望ViewModel得到通知。我还希望在第一个View模型收到事件时通知第二个View模型。因此点击事件将按如下方式传播:Button->ViewModel1->ViewModel2我可以通过将button.rx_tap绑定(bind)到viewModel1.onButtonTapped()来设计它,但是因为我希望viewModel2订阅也得到事件,我需要某种可观察到的接收Action并传播它的对象。我相信这就是RACCommand所做的。我如何使用RxSwift实现它? 最佳

ios - 将 RACCommand 与异步网络操作结合使用

我正在使用UAGitHubEngine访问GitHub的API。我想编写一个功能性的响应式(Reactive)应用程序来获取一些数据。我依赖于代码here设置异步网络请求。我正在寻找的是某个名为“General”的团队的团队ID。我可以完成过滤/打印部分:[[self.gitHubSignalfilter:^BOOL(NSDictionary*team){NSString*teamName=[teamvalueForKey:@"name"];return[teamNameisEqualToString:@"General"];}]subscribeNext:^(NSDictionary

ios - 为什么 RACCommand 的 block 返回信号?

我学习了很多关于ReactiveCocoa的知识但有一件事仍然让我感到困惑:为什么RACCommand上的信号block本身会返回一个信号?我了解RACCommand的用例、它的canExecute信号和信号block,以及它如何连接到UI元素。但是什么情况下会返回[RACSignalempty]以外的东西?infoButton.rac_command=[[RACCommandalloc]initWithSignalBlock:^RACSignal*(idinput){//Dostuffreturn[RACSignalempty];}]; 最佳答案