草庐IT

ReactiveCocoa

全部标签

ios - 如何知道何时使用 ReactiveCocoa 异步保存所有对象

在我的应用程序中,我使用ReactiveCocoa返回信号以在异步api调用完成时通知我(成功与否)。在保存数据的POST上,一次只取一个对象:-(RACSignal*)postJSONData:(NSDictionary*)dicttoRelativeURL:(NSString*)urlString;。返回RACSignal的函数向订阅者发送下一个:[subscribersendNext:json]或错误:[subscribersendError:jsonError]。这在保存单个对象时效果很好,但我也遇到了必须保存多个对象的情况。这些对象可以按任何顺序(即它们彼此不依赖)或按顺序保

ios - RACDelegateProxy 与 Common Delegate 实现

我正在研究ReactiveCocoa(我不擅长FRP,也不擅长纯函数式编程)并且我看到了RacDelegateProxy类,它可以抽象具有void返回值的委托(delegate)方法的实现。我没有弄清楚的是使用它的好处是什么,当我们与传统实现进行比较时,即实现每个方法并获得调用。那么,使用RACDelegateProxy而不是以传统方式实现的主要区别和好处是什么?代码示例(使用ReactiveCocoa):self.deselectDelegate=[[RACDelegateProxyalloc]initWithProtocol:@protocol(UITableViewDelegat

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 - ReactiveCocoa : How do you bind a button's title to a text property?

我有一个UIButton,其状态正常/突出显示的标题应与其容器对象的属性保持同步。如何使用字符串属性为特定状态绑定(bind)按钮标题?编辑:我知道使用RACObserve并更改subcribeNextblock中的按钮标题是一种解决方案。我正在寻找更专门为UIButton设计的东西,例如:RACBindButtonTitle(button,property,state1,state2);不知道有没有这种“RAC糖”。 最佳答案 这是一种无需显式订阅即可实现的方法。应尽可能避免显式订阅,这样您就不必经历整个@weakify(self

ios - ReactiveCocoa Combine最新 : and Zip:

我和这篇文章有同样的问题,CombinesignalsinReactiveCocoatoanewonethatfireswhenallchange所以我改为使用zip:奇怪的问题是第二个信号数据不是最新的。我在第二个信号的map代码中记录了一个日志,它是最新的。例如信号A,信号B[selfrac_liftSelector:@selector(doTask:)withSignals:[RACSignalzip:@[A,B]reduce^id(NSNumber*a,NSNumber*b){a//isupdatedtolatestb//istheoldvalue}];在SignalB中,我把

ios - 使用 ReactiveCocoa 观察 NSArray 中的对象变化

我正在创建简单的联系人应用程序,试图学习ReactiveCocoa和MVVM。我将单元格的ViewModel数组存储在我的tableView的ViewModel中。当用户进入tableView的编辑模式时,某些单元格的ViewModel的某些属性可以随着用户更改单元格文本而更改。我想观察这些变化,以便启用/禁用“完成”按钮,并相应地启用/禁用将数据保存到模型的信号。我如何观察tableViewsView模型中的这些变化?这是我尝试使用的一段代码:-(RACSignal*)executeCheckChange{return[RACObserve(self,cellViewModels)m

ios - 如何使用 CocoaPods 正确安装 ReactiveCocoa?

我是ReactiveCocoa的新手|.我尝试安装ReactiveCocoa几天前通过CocoaPods.这是我的podFile:platform:ios,'7.0'pod'ReactiveCocoa'使用后podinstall我在这里有日志文件:AnalyzingdependenciesDownloadingdependenciesUsingReactiveCocoa(2.0)GeneratingPodsprojectIntegratingclientproject然后我打开myproject.xworkspace和#import开始使用该框架。但问题是我无法让它工作例如在我的代码中

ios - 将 ReactiveCocoa 3 和 4 与核心数据一起使用

我是ReactiveCocoa的新手,想用它来替代Swift2项目中某些NSManagedObject上的KVO。我在网上找到的大多数示例都使用RACObserve(),它已在RAC3中被删除(?)。Changelog声明,新版本不再强调KVO,我应该移至PropertyTypes。有什么方法可以让我在现有的NSManagedObject上使用ReactiveCocoa3和4,其方式与使用RACObserve()的方式类似吗? 最佳答案 ReactiveCocoa3.0documentation指向DynamicPropertyTh

ios - 构建应用程序以使用带有 ReactiveCocoa 的 ViewModel

我开始使用ReactiveCocoa。简单的东西说得通,复杂的我还做不到。;)这就是我要建模的内容:我有一个ViewController,它显示从HTTP端点请求的一些数据。HTTP端点使用带有cookie的类似浏览器的基本身份验证。所以,我想发出HTTP请求。如果成功,很好,显示数据。如果失败并显示401,我需要告诉View弹出一个模态对话框询问用户名/密码,然后重试HTTP请求。那么,在我的ViewModel中,我有两个信号吗?一个返回内容,另一个告诉View层我需要凭据?如何将凭据返回到HTTP请求发生的位置? 最佳答案 您的

ios - ReactiveCocoa - 将副作用转化为信号

在我的应用程序中,我有一个通过flattenMap触发一些异步网络事件的信号。我想在网络事件进行时显示加载指示器。我目前的解决方案工作得很好:[[[[self.signInButtonrac_signalForControlEvents:UIControlEventTouchUpInside]doNext:^(idx){//showtheloadingindicatorasaside-effectself.loadingIndicator.hidden=NO;}]flattenMap:^id(idx){return[selfdoSomethingAsync];}]subscribeNe