问题标签 [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.
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.
ios - 带有 ReactiveCocoa v3 和 Swift 1.2 的 ios ViewModel
我在版本 3 中使用 ReactiveCocoa 时遇到问题。我想为我的登录视图控制器构建一些视图模型。在我的视图控制器中,我有密码文本字段的出口:
在视图模型中,我有作为密码的文本的属性
问题是如何将它绑定在一起?我可以从文本字段中获取 SignalProducer:
但如何将其绑定到 emailText 属性?我在文档中读到 SignalProducer不是信号,但它现在可以创建。有方法 start() 但它以 Sink 作为参数,此时我对设计有点困惑。emailText 不应该是一个接收器吗?
swift - 如何用 RAC3 替换我的 KVO 代码并保留现有模型?
我正在研究 ReactiveCocoa 以改进我们的 Swift 代码。作为起点,我想将标签的文本绑定到属性的转换值。基本上,我想替换一些 KVO 代码。所以,我有以下变量:
由于我们的模型是用 Objective-C 开发的,MyModel
看起来像这样:
因此,我想做这样的事情:
但是,这显然行不通。我该如何处理这个问题?以及 KVO 一般是如何用正常的模型属性实现的?
我已经找到了关于这个主题的类似帖子。那里接受的答案建议使用 ViewModels。但是,我不想用 ViewModels 替换我现有的 NSManagedObject 模型,而是想保留我的模型,因为我喜欢通过 XCode 管理它们并通过 CoreData 存储它们。或者这对于 ViewModel 来说是否也是可能的?我错过了什么重要的东西吗?
swift - ReactiveCocoa vs RxSwift - 优点和缺点?
所以现在有了 swift,ReactiveCocoa的人已经在 3.0 版中为 swift 重写了它
此外,还有一个名为RxSwift的项目启动了。
我想知道人们是否可以添加有关这两个框架的设计/api/哲学差异的信息(请本着 SO 的精神,坚持真实的事情,而不是关于哪个“最好”的意见)
[StackOverflow 模组注意事项:这个问题确实有明确的答案,答案是两个框架之间的差异。我认为这对 SO 来说也很重要]
首先,我阅读他们的自述文件的最初印象是:
- 作为熟悉微软“真正的”C# Rx 的人,RxSwift 看起来更容易识别。
- ReactiveCococa 现在似乎已经进入了自己的领域,引入了新的抽象,例如 Signals vs SignalProducers 和 Lifting。一方面,这似乎澄清了某些情况(什么是热信号与冷信号),但另一方面,这似乎大大增加了框架的复杂性
reactive-cocoa-3 - 绑定 MutableProperty 时遇到问题到一个信号使用 RAC 3.0
所以我试图将此可变属性绑定到字符串信号。
我的理解是类型与此函数签名匹配:
然而编译器似乎对使用哪个运算符感到困惑并打印出这个错误:
在我看来,这些类型似乎是检查出来的,但不是根据编译器......知道如何解决这个绑定吗?
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.
ios - ReactiveCocoa 3 和 ReactiveCocoa 4 中的多播
假设我有一个返回 a 的函数,SignalProducer<AnyObject?, NSError>
并且我想将生产者绑定到多个MutableProperty<String>
. 所以,像这样:
为了避免我的功能(例如一些网络内容)多次运行,我需要使用多播。据我所知,CHANGELOG是startWithSignal
用于此目的的操作员。但是我似乎无法弄清楚如何以声明的方式做到这一点。
因此,一种方法可能是在闭包中进行绑定startWithSignal
:
然而,这显然会失败,因为我们需要摆脱这NSError
部分。因为我们给出 a Signal
(与 a 相对SignalProducer
),所以我们不能使用flatMapError
(在 RAC4 中,catch
在 RAC3 中)。而且我看不出怎么mapError
能为我们做到这一点?最后,我什至不确定这是在 RAC3/RAC4 中处理多播的正确方法吗?
任何帮助深表感谢。
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
它的数组失败了?
swift - 如何在 ReactiveCocoa 中处理内部生产者?
假设我有我想做的并行工作,例如下载多个图像。这些下载中的每一个都由一个SignalProducer
. 我创建它们并使用该Merge
策略将它们展平。当我启动外部生产者并获得一次性设备时,我预计处理它也会处理内部生产者。实际发生的是,在处置后,我的外部生产者停止接收事件,但内部生产者正在执行的实际工作仍在继续,因为它们还没有被处置。
如何让内部生产者完成的实际工作停止?这是一些说明该场景的测试代码:
输出:
ios - 返回值类型为CGFloat时如何使用ReactiveCocoa发送Keypath
错误日志是:
我认为如果有另一种方法来反应类型是浮点数、整数等的值。我会接受它