问题标签 [reactive-cocoa-3]

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 回答
753 浏览

ios - 将 ReactiveCocoa 3 和 4 与 Core Data 一起使用

我是 ReactiveCocoa 的新手,想NSManagedObject在 Swift 2 项目中的某些 s 上用它来替代 KVO。

我在网上找到的大多数示例都使用RACObserve(),在 RAC 3 中已被删除(?)。变更日志指出,新版本不再强调 KVO,我应该移至PropertyTypes。

有什么方法可以让我在现有设备上使用 Reactive Cocoa 3 和 4,其NSManagedObject方式与可以使用的方法类似RACObserve()吗?

0 投票
1 回答
295 浏览

swift - 在 RAC 3+ 中使用 combineLatest 和 UITextFields

我想简单地“组合”多个文本字段发出的信号并触发一段代码。似乎有几种方法“应该”使用诸如SignalProducer 初始化程序之类combineLatest()的方法来工作。values:但我无法按预期编译或运行任何东西。

RAC 文档使用以下示例

但我无法编译这种用法

我可以使用冗余块执行以下操作...

我也不明白为什么我需要使用toSignalProducer()和启动而不是仅仅观察它rac_textsignal本身。这会“编译”,但除非创建并启动生产者,否则似乎不会在信号上发送任何内容。

这个问题/答案ReactiveCocoa 将 SignalProducers 组合成一个也可以,但似乎仍然是一种解决方法,并且没有解释为什么需要创建信号生产者而不是观察原始rac_textSignal()s

0 投票
3 回答
162 浏览

ios - 避免在 ReactiveCocoa 上重复 http 请求

我有一个信号,它基本上是在请求使用 NSRULSession 进行配置。当我执行 subscribeNext 时,它会完美地完成请求,但是第二次不再需要此请求。我怎么能避免呢?

0 投票
2 回答
864 浏览

ios - ReactiveCocoa 4:如何在不中断信号的情况下向观察者发送错误

当我因为用户禁用蓝牙而调用它时:

被中断,再次启用蓝牙后Signal我没有收到更多next或事件。坏了interruptedSignal

如何在不中断/中断的情况下将error类型发送到?我在 RAC 4 文档中找不到。谢谢!observerSignal

0 投票
1 回答
312 浏览

ios - 如何将 Signal 转换为 SignalProducer

不幸的是,一些 RAC 作品不提供SignalProducers,但Signals —likeAction有一个values字段是Signal. 但就我的逻辑而言,我需要SignalProducer.

我怎样才能转换SignalSignalProducer

toSignalProducer(toRACSignal(x))似乎不是一个好的解决方案

0 投票
1 回答
1250 浏览

swift - 如果信号已经发生,我如何观察信号并立即接收到“下一个”事件?

我正在尝试包装一个在网络请求后初始化对象的 API 调用。我不希望每个新观察者都发生网络请求,所以据我了解,我不应该使用SignalProducer. 但是,通过使用单个Signal,只有第一次使用它会收到一个next事件,而任何较新的订阅者将永远不会收到当前值。我应该怎么做?我可能对 RAC 做了一些根本性的错误。

我考虑过使用MutableProperty,但这似乎需要一个默认属性,这似乎没有意义。

我应该怎么做呢?

0 投票
1 回答
218 浏览

ios - 使用 ReactiveCocoa 4 和 NSButton 计算 bean

我有以下内容:

  • 两个有趣的类:aViewController和 aViewModel
  • nsButtonMorePlease:NSButtonview的一个按钮ViewController
  • nsTextView:NSTextView还有一个文本view

我想要以下行为:

  • 启动程序时,“计数”从 0 开始并显示在文本框中nsTextView
  • 当您按下按钮nsButtonMorePlease时,计数会增加 1,1更新后的计数会反映在nsTextView

我想确保:

  • 我用ReactiveCocoa 4(这就是重点)
  • 模型类包含numberOfBeans: MutableProperty<Int>开始于0
  • 该设计纯粹是功能性的或接近于它-也就是说(如果我理解该术语),链中的每个链接都将鼠标单击事件映射到文本视图MutablePropertynumberOfBeans响应它的事件,都没有副作用。

这就是我所拥有的。公平警告:我相信这并不接近工作或编译。但我确实觉得也许我想使用 , , 等中的一个combineLatestcollect只是reduce迷失了具体要做什么。我确实觉得这让事情变得容易变得非常困难。

0 投票
1 回答
46 浏览

reactive-cocoa - 我什么时候应该/必须将 ReactiveCocoa 对象声明/实例化为存储属性而不是局部变量?

(适用于ReactiveCocoa4 或 3)

在我见过的大多数示例和案例中,将用户界面连接到数据中所涉及的ReactiveCocoa对象至少在构造函数中调用的某个或类似方法中MutableProperty<TVal, TErr>实例化。SignalProducer<TVal, TErr>setupBindings

我经历过几种情况,当我将对象的声明从范围移动到存储属性时,我的非工作代码突然“正常工作”,反之亦然。例如,在伪代码中:

因此,似乎有一些基本问题。

给定一些ReactiveCocoa对象...

  1. 我什么时候应该将它声明为属性(letvar)与本地实例变量?
  2. 我什么时候应该将它实例化为存储的、计算的或其他属性与实例的变体
  3. 什么时候应该是一个函数return
0 投票
1 回答
757 浏览

ios - RAC 4.0 如何正确链接 SignalProducers?

我有一个具有几个不同功能的视图模型,如下所示:

现在,这些信号需要按顺序运行——在前一个信号完成之前无法启动。因此,我有另一个函数,称为:

我的印象then是用于这种行为的功能。Signal3 不应该在 Signal2 完成之前开始,它不应该在 Signal1 完成之前开始。

调用的函数setupstart()调用。

我哪里错了?

0 投票
1 回答
89 浏览

reactive-cocoa - RAC3/4 中冷信号的多播

我想要两个冷SignalProducer的 B 和 C,它们都依赖于其他冷SignalProducerA,它发出 db 实体对象 - 所以对我来说,多播以便完全相同的对象到达 B 和 C 是至关重要的。这是一些图表:

但是因为 B 和 C 有一些转换,这可能需要大量的工作,所以我不希望它们在连接之前发生。

在 RAC2 中,我们在这种情况下工作正常。[[RACSignal-publish]-autoconnect]

正如CHANGELOG所说,来自 RAC2 的多播startWithSignal使用 .

SignalProducer.buffer似乎是一个可以接受的解决方案。

在这种情况下,正确的解决方案是什么?