问题标签 [reactive-swift]

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 投票
1 回答
937 浏览

swift - 如何在 ReactiveSwift 中编写动作(“运行此列表中的第一个启用的动作”)

我有两个Action具有相同输入/输出/错误类型的 s,我想将它们组合成一个Action运行两者中的任何一个启用的单个(如果它们都启用,则使用任意决胜局)。

这是我的第一个失败的尝试:

这失败了,因为内部add.apply(input)看不到 I checked ,所以它在错误类型周围add.isEnabled包裹了一个额外的层。ActionError<>(这可能是合法的,因为我不确定这种方法的线程安全性如何,或者可能是我们知道类型系统不知道的东西。)相应的类型错误是:

我应该怎么做?

0 投票
1 回答
780 浏览

ios - 如何使用 ReactiveSwift 和 Firebase 异步方法调用处理 SignalProducer?

我正在使用 ReactiveSwift 1.1.1、MVVM + Flow Coordinator 模式和 Firebase 作为后端开发一个带有 Swift 3 的 iOS 应用程序。我最近才开始适应 FRP,我仍在试图弄清楚如何将新功能集成到我现有的代码库中。

例如,我的模型使用 Firebase 的异步方法从 Web 下载缩略图,我想提供一个SignalProducer<Content, NoError>订阅我的 ViewModel 类并观察是否已下载缩略图,然后更新 UI。

我也尝试过类似的方法Signal<Content, NoError>,而我使用该Signal<Content, NoError>.pipe()方法接收一个(observer, disposable)元组,并将观察者保存为一个私有全局字段,以便从 Firebase 回调中访问它。

问题:

这是正确的方法还是我错过了什么?

如何在完成时发出内容对象?

更新:

经过几个小时的痛苦,我发现了如何设计 SingalProducer 来发出信号并从 ViewModel 订阅。

也许以下代码片段对其他人也有帮助:

也许有人可以验证上面的代码并说这是正确的方法。

0 投票
1 回答
689 浏览

reactive-swift - 反应式斯威夫特。压缩一系列信号产生器

我有一组信号生成器,它们从后端获取类似的对象,例如 [SignalProducer <Object, NSError >]。每次都完成后,我如何压缩它们以获取结果数组 [Object]?我知道 zip 运算符具有预定义的生产者数量,但事实并非如此,因为要发送的请求数量仅在运行时才知道。

0 投票
2 回答
1214 浏览

reactive-cocoa - ReactiveCocoa:绑定到 Signal 或 SignalProducer 之间的区别?

绑定运算符 (<~) 接受一个BindingSource参数,两者都Signal符合SignalProducer协议

我希望绑定到生产者的 UI 元素在生产者以某种方式启动之前不会“接收事件”,但情况似乎并非如此

IE

导致两个标签都更新。

这是预期的行为还是我误解了什么?

0 投票
1 回答
1074 浏览

swift - 如何在 ReactiveSwift 中将 Signal 和 SignalProducer 合并为 Signal?

如何在 ReactiveSwift 中将 Signal 和 SignalProducer 合并为 Signal?

以下是我到目前为止所拥有的。我不知道如何获得Signal在线 3。

我看过这个startWithSignal方法

但它需要关闭。为什么它不能只返回一个信号?我不想为我需要信号的每个 signalProducer 创建另一个嵌套闭包。什么。

我是 ReactiveSwift 的新手,老实说,这是我遇到过的最令人困惑的框架

0 投票
2 回答
985 浏览

swift - ReactiveSwift:如何重新绑定(删除旧绑定,添加新绑定)?

我有一个必须能够定期重新绑定到新视图模型的视图:这意味着删除旧绑定以及连接新绑定。我有一个可行的解决方案,但它不是线程安全的,我想知道是否有更惯用的方法来做同样的事情:

0 投票
1 回答
909 浏览

swift - ReactiveCocoa - 具有一般错误处理的信号生成器序列

我有一个关于 Swift 3 的 ReactiveCocoa (v5) 的问题。在我的项目中,我有不同的服务。例如 api 或用于从磁盘保存或获取内容。这些服务正在返回 SignalProducer。我现在有一些类似调用不同服务的序列,这些服务相互依赖。这里的顺序:

  1. 调用服务获取密钥
  2. 使用 key 调用 api 和 service
  3. 获取数据表单 api(返回多个模型)
  4. 使用 first-model-service 保存第一个模型
  5. 使用 second-model-service 保存第二个模型

在我的序列中,我还必须将来自第二个服务调用的数据传递给模型保存。

此外,如果SignalProducer序列中的一个发送错误,则整个序列将停止,并以错误作为参数调用回调。我不知道startWithFailed这里的功能是否正确。

有没有人和我一样的情况,可以举个例子吗?我阅读了一些教程,但我无法弄清楚。

0 投票
1 回答
510 浏览

swift - 未设置可选 MutableProperty 的反应式 Swift 绑定?

因此,我最近开始尝试将 ReactiveSwift 合并到我的项目中,但我似乎无法弄清楚为什么当我尝试使用 <~ 运算符设置属性时,我的这一部分代码会给我一个编译错误。

所以这是我到目前为止所拥有的,

所以你可以在上面看到给我一个错误的行让我感到困惑,因为我已经将它设置为一个可选属性,所以我不明白为什么它说一个 nil 值是不兼容的。另外,如果有更好的方法,请告诉我,因为我发现很难找到快速反应可可的资源

0 投票
1 回答
484 浏览

swift3 - RACSubject 迁移到 ReactiveCocoa 5 (Swift 3)

我必须将应用程序从 ReactiveCocoa 4 迁移到 ReactiveCocoa 5(由于 Swift 3 迁移)

旧实现使用一些 RACSubject 实例来触发 (performOperationSubject.sendNext) 操作和处理 (didOperationSubject.subscribeNext) 结果

以及何时使用 MyClass 实例

不幸的是,RACSubject 在 ReactiveCocoa 5 (ReactiveSwift) 中不再存在

在这种情况下如何替换 RACSubject?

0 投票
0 回答
548 浏览

ios - 为什么 ReactiveSwift Action 只运行一次?

我想使用 ReactiveSwift 实现一个简单的登录功能。

这是我的 ViewController 代码:

视图模型:

当我将断点设置到该行时return MembershipManager.sharedInstance.signin(...,仅当我按下登录按钮时它才被击中一次。之后,当我再次按下按钮时,什么也没有发生。

有谁知道原因?我刚开始只使用 ReactiveSwift。