问题标签 [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 投票
2 回答
4088 浏览

ios - ReactiveCocoa combine SignalProducers into one

I'm using ReactiveCocoa and I have several SignalProducers

I want to combine them into a single signal producer that produces a signal whenever one of them produces a signal.

At first the combineLatest function looked like a good solution

However, according to this article, the resulting producer only produces its first signal when all the three have produced a signal.

This interactive diagram shows exactly what I want, so I want to use the flatten function with the .Merge FlatteningStrategy. However, I'm having a hard time figuring out the syntax to achieve this.

0 投票
1 回答
120 浏览

ios - 带有 ReactiveCocoa v3 和 Swift 1.2 的 ios ViewModel

我在版本 3 中使用 ReactiveCocoa 时遇到问题。我想为我的登录视图控制器构建一些视图模型。在我的视图控制器中,我有密码文本字段的出口:

在视图模型中,我有作为密码的文本的属性

问题是如何将它绑定在一起?我可以从文本字段中获取 SignalProducer:

但如何将其绑定到 emailText 属性?我在文档中读到 SignalProducer不是信号,但它现在可以创建。有方法 start() 但它以 Sink 作为参数,此时我对设计有点困惑。emailText 不应该是一个接收器吗?

0 投票
1 回答
369 浏览

swift - 如何用 RAC3 替换我的 KVO 代码并保留现有模型?

我正在研究 ReactiveCocoa 以改进我们的 Swift 代码。作为起点,我想将标签的文本绑定到属性的转换值。基本上,我想替换一些 KVO 代码。所以,我有以下变量:

由于我们的模型是用 Objective-C 开发的,MyModel看起来像这样:

因此,我想做这样的事情:

但是,这显然行不通。我该如何处理这个问题?以及 KVO 一般是如何用正常的模型属性实现的?

我已经找到了关于这个主题的类似帖子。那里接受的答案建议使用 ViewModels。但是,我不想用 ViewModels 替换我现有的 NSManagedObject 模型,而是想保留我的模型,因为我喜欢通过 XCode 管理它们并通过 CoreData 存储它们。或者这对于 ViewModel 来说是否也是可能的?我错过了什么重要的东西吗?

0 投票
1 回答
30178 浏览

swift - ReactiveCocoa vs RxSwift - 优点和缺点?

所以现在有了 swift,ReactiveCocoa的人已经在 3.0 版中为 swift 重写了它

此外,还有一个名为RxSwift的项目启动了。

我想知道人们是否可以添加有关这两个框架的设计/api/哲学差异的信息(请本着 SO 的精神,坚持真实的事情,而不是关于哪个“最好”的意见)

[StackOverflow 模组注意事项:这个问题确实有明确的答案,答案是两个框架之间的差异。我认为这对 SO 来说也很重要]

首先,我阅读他们的自述文件的最初印象是:

  • 作为熟悉微软“真正的”C# Rx 的人,RxSwift 看起来更容易识别。
  • ReactiveCococa 现在似乎已经进入了自己的领域,引入了新的抽象,例如 Signals vs SignalProducers 和 Lifting。一方面,这似乎澄清了某些情况(什么是热信号与冷信号),但另一方面,这似乎大大增加了框架的复杂性
0 投票
1 回答
383 浏览

reactive-cocoa-3 - 绑定 MutableProperty 时遇到问题到一个信号使用 RAC 3.0

所以我试图将此可变属性绑定到字符串信号。

我的理解是类型与此函数签名匹配:

然而编译器似乎对使用哪个运算符感到困惑并打印出这个错误:

在我看来,这些类型似乎是检查出来的,但不是根据编译器......知道如何解决这个绑定吗?

0 投票
1 回答
69 浏览

swift - Why are these context variables not visible?

I'am using Swift 1.2 with ReactiveCocoa 3.0, SwiftyJSON 2.2.1 and Alamofire 1.3.1. I am building a reactive network manager.

Why is the following not working?

sendError, sendNext and sendCompleted are not compiling. When they are uncommented the compiler says:

When debugging I see that sink and disposable are not visible inside the Alamofire closure. Strangest thing: This used to work some hours ago.

0 投票
2 回答
540 浏览

ios - ReactiveCocoa 3 和 ReactiveCocoa 4 中的多播

假设我有一个返回 a 的函数,SignalProducer<AnyObject?, NSError>并且我想将生产者绑定到多个MutableProperty<String>. 所以,像这样:

为了避免我的功能(例如一些网络内容)多次运行,我需要使用多播。据我所知,CHANGELOGstartWithSignal用于此目的的操作员。但是我似乎无法弄清楚如何以声明的方式做到这一点。

因此,一种方法可能是在闭包中进行绑定startWithSignal

然而,这显然会失败,因为我们需要摆脱这NSError部分。因为我们给出 a Signal(与 a 相对SignalProducer),所以我们不能使用flatMapError(在 RAC4 中,catch在 RAC3 中)。而且我看不出怎么mapError能为我们做到这一点?最后,我什至不确定这是在 RAC3/RAC4 中处理多播的正确方法吗?

任何帮助深表感谢。

0 投票
0 回答
381 浏览

ios - Swift 预期类型 Array<_>

我正在尝试在 swift 2 中编写 UITableView RAC3 绑定助手。

我正在尝试初始化具有签名的绑定助手init(tableView: UITableView, sourceSignal: SignalProducer<[T], NoError>, reuseIdentifier: String, selectionCommand: (() -> Void)? = nil)

我的代码是self.bindingHelper = TableViewBindingHelper<PostCellViewModel>(tableView: tableView, sourceSignal: viewModel.posts.producer, reuseIdentifier: R.reuseIdentifier.contactReuseIdentifier.identifier)

我在 上得到一个编译器错误sourceSignal: viewModel.posts.producer,说那Cannot convert value of type 'SignalProducer<[PostCellViewModel], NoError>' (aka 'SignalProducer<Array<PostCellViewModel>, NoError>') to expected argument type 'SignalProducer<[_], NoError>' (aka 'SignalProducer<Array<_>, NoError>')是没有意义的......

它是说它期待一个SignalProducer<[_], NoError>. 我假设 _ 表示它不关心我传入的类型,但后来我尝试传入PostCellViewModel它的数组失败了?

0 投票
0 回答
656 浏览

swift - 如何在 ReactiveCocoa 中处理内部生产者?

假设我有我想做的并行工作,例如下载多个图像。这些下载中的每一个都由一个SignalProducer. 我创建它们并使用该Merge策略将它们展平。当我启动外部生产者并获得一次性设备时,我预计处理它也会处理内部生产者。实际发生的是,在处置后,我的外部生产者停止接收事件,但内部生产者正在执行的实际工作仍在继续,因为它们还没有被处置。

如何让内部生产者完成的实际工作停止?这是一些说明该场景的测试代码:

输出:

0 投票
1 回答
172 浏览

ios - 返回值类型为CGFloat时如何使用ReactiveCocoa发送Keypath

错误日志是:

我认为如果有另一种方法来反应类型是浮点数、整数等的值。我会接受它