问题标签 [reactive-cocoa-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1524 浏览

ios - 带有 ReactiveCocoa 4 的简单 UIGestureRecogniser 示例

努力让一个简单的 ReactiveCocoa 4 示例正常工作。

  • 我的层次结构中的视图具有平移手势识别器。
  • 我的触摸事件有一个预期的目标类(假设我想根据触摸位置生成网络数据包)。

所以看起来我想从我的手势识别器创建一个信号,映射以提取相对于某个视图的触摸位置,然后让我的目标类观察这个信号(或者只是让一些最终的 subscribeNext 块调用我的目的地上的方法班级)。

但是,似乎无法使任何事情发挥作用,也无法找到可以效仿的好例子。

我想我应该写这样的东西(伪代码)

这样的事情可能吗(看起来很简单)?我是否可能试图以不好的方式使用该框架?

0 投票
1 回答
144 浏览

reactive-cocoa - 在 ReactiveCocoa 4 中 replayLast 可能吗?

在 RAC2 中,您可以附加replayLast一个信号来生成一个信号,当订阅该信号时,将立即发送最后一个值和所有未来值。RAC4 中的 SignalProducers 可以做到这一点吗?我没有看到任何replayLast

0 投票
2 回答
900 浏览

ios - 使用 ReactiveCocoa 创建移动平均线(和其他 FIR 滤波器)

我仍然开始使用 ReactiveCocoa 和函数式反应式编程概念,所以也许这是一个愚蠢的问题。

ReactiveCocoa 似乎很自然地设计为对实时数据流、触摸事件或加速度计传感器输入等做出反应。

是否可以在 ReactiveCocoa 中以一种简单的反应方式应用有限脉冲响应滤波器?或者如果不是,那么做这件事的最不丑陋的黑客方式是什么?一个人将如何去实现一个简单的移动平均线之类的东西?

理想情况下正在寻找 Swift 2 + RA4 解决方案,但也对这在 Objective C 和 RA2/RA3 中是否可行感兴趣。

0 投票
1 回答
64 浏览

objective-c - SignalProducer 的状态

是否可以在 ReactiveCocoa4 中识别 SignalProducer 的状态?

如果 SignalProducer 已创建,但不一定已启动,是否可以读取属性或调用方法以了解信号是否已启动,而无需在过程中实际启动信号。

0 投票
1 回答
88 浏览

ios - Reactive Cocoa - 然后是自定义信号与 UI 信号

我开始使用 Reactive Cocoa,所以我写了一个小测试,看看我是否理解然后构造。目标是仅在发送某些信号后才将文本从文本字段输出到标签。我试过 rac_signalForControlEvents(UIControlEvents.TouchUpInside) 和非常简单的自定义信号。前者甚至不调用then闭包,而后者确实按预期工作。这里有什么问题?

0 投票
2 回答
206 浏览

reactive-cocoa-4 - RAC 4 中的 RACO观察

我正在使用 ReactiveCocoa4 开发一个新的新 swift 2 项目,我想知道如何像之前在 ObjC 中那样观察属性变化。

[RACObserve(self,self.model.wifiState) subscribeNext:^(id newValue){ @strongify(self); self.wifiState = newValue; }];

你有什么提示吗?

谢谢

蒂埃里

0 投票
1 回答
754 浏览

swift - Reactive Cocoa 4 中用于重复网络请求的管道

我想使用 Reactive Cocoa 4 从 API 每 15 秒刷新一次数据。由于多个订阅者可以同时请求这些数据,我希望多个订阅者共享一个数据源。

我目前的方法是拥有一个Signal并将其共享给每个需要数据的实例。此信号应在第一个信号被订阅后立即开始刷新,并在最后一个信号被释放后结束。

因此,对于第一个请求,我创建并存储了 updateSignal,随后的每个请求都将获得该信号。

我的第一个问题:我怎么知道最后一个订阅者何时释放了它的信号?那么我什么时候可以停止请求?

我的第二个问题:我存储来自我的重复网络请求的一次性用品,self.disposable我也将其返回给订阅者。如果订户只处理其信号(他从中获得Signal.observeNext())内部循环,我记录“启动网络请求”的地方将无休止地运行。即使外部信号被处理,我是否真的需要自己停止该信号?

共享重复请求是否有更好的方式或模式?

0 投票
1 回答
99 浏览

reactive-cocoa - ReactiveCocoa 4 - 创建一个只运行一次的依赖登录请求

过去,我主要使用 ReactiveCocoa 来简单地绑定视图和视图模型,现在我正尝试冒险并在整个新项目中使用它,但我无法理解一些事情。

我想做的是这个——

  • 有一个网络登录请求,每个其他网络请求都需要首先调用。
  • 如果发出多个请求,它们都需要等到登录完成(例如,假设我有一个选项卡栏控制器,并且在登录完成之前我在它们之间快速点击;我不希望触发多个登录请求。)

我花了一些时间探索一些选项,例如队列,研究诸如flatMap(.Latest)但如果我完全诚实的话 - 我不知道我在做什么!:S

下面是一个非常基本的、愚蠢的实现,它很快就被破解了,而且很可能实现得很糟糕。如果有人能给我一些关于我需要改变什么的指示,那将不胜感激。我的doSomething方法显然首先登录,但如果一次进行多个调用,他们不会等到第一个调用完成,因为我需要它们。

loginValid我可以对物业做点什么吗?

(另外,关于我应该如何构建这些东西的指针会很棒——我确信我用这段代码做了很多愚蠢的事情)

谢谢!

0 投票
2 回答
1163 浏览

swift - 如果信号没有在 ReactiveCocoa 4 中发送下一个,则在延迟后重试

我正在使用带有 Swift 的 ReactiveCocoa 4.0。我有一个我在视图控制器中订阅startedSignal的类型的信号。Signal<String, NoError>

我基本上想等待几秒钟,然后如果startedSignal不发送任何下一个值,则执行其他操作。我查看了文档并看到了类似retryonSignalProducer但我不确定如何使用它来实现这一点,因为startedSignal它没有完成或发送错误。

0 投票
2 回答
989 浏览

swift - ReactiveCocoa 4 设置启用/禁用操作

我正在使用 ReactiveCocoa4 为我的项目添加一些基本的登录功能。我在 viewModel 中设置了“用户名”和“密码”MutableProperties,并将它们绑定到 viewController 中的关联文本字段。到目前为止一切顺利,但我坚持设置动作来执行网络请求。本质上,我希望操作采用输入元组(用户名:字符串,密码:字符串)并输出我的自定义用户对象“SBUser”。我还在对用户名和密码输入进行一些基本验证,并将其与操作的启用状态联系起来。我的 viewModel 代码如下。

}

我收到一个错误,上下文闭包类型 ' ->SignalProducer< ,_>' 需要 1 个参数,但在闭包主体中使用了 2 个参数。不能将这样的元组传递给动作的输入吗?