问题标签 [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 3 和 4 与 Core Data 一起使用
我是 ReactiveCocoa 的新手,想NSManagedObject
在 Swift 2 项目中的某些 s 上用它来替代 KVO。
我在网上找到的大多数示例都使用RACObserve()
,在 RAC 3 中已被删除(?)。变更日志指出,新版本不再强调 KVO,我应该移至PropertyType
s。
有什么方法可以让我在现有设备上使用 Reactive Cocoa 3 和 4,其NSManagedObject
方式与可以使用的方法类似RACObserve()
吗?
swift - 在 RAC 3+ 中使用 combineLatest 和 UITextFields
我想简单地“组合”多个文本字段发出的信号并触发一段代码。似乎有几种方法“应该”使用诸如SignalProducer 初始化程序之类combineLatest()
的方法来工作。values:
但我无法按预期编译或运行任何东西。
RAC 文档使用以下示例
但我无法编译这种用法
我可以使用冗余块执行以下操作...
我也不明白为什么我需要使用toSignalProducer()
和启动而不是仅仅观察它rac_textsignal
本身。这会“编译”,但除非创建并启动生产者,否则似乎不会在信号上发送任何内容。
这个问题/答案ReactiveCocoa 将 SignalProducers 组合成一个也可以,但似乎仍然是一种解决方法,并且没有解释为什么需要创建信号生产者而不是观察原始rac_textSignal()
s
ios - 避免在 ReactiveCocoa 上重复 http 请求
我有一个信号,它基本上是在请求使用 NSRULSession 进行配置。当我执行 subscribeNext 时,它会完美地完成请求,但是第二次不再需要此请求。我怎么能避免呢?
ios - ReactiveCocoa 4:如何在不中断信号的情况下向观察者发送错误
当我因为用户禁用蓝牙而调用它时:
被中断,再次启用蓝牙后Signal
我没有收到更多next
或事件。坏了interrupted
。Signal
如何在不中断/中断的情况下将error
类型发送到?我在 RAC 4 文档中找不到。谢谢!observer
Signal
ios - 如何将 Signal 转换为 SignalProducer
不幸的是,一些 RAC 作品不提供SignalProducer
s,但Signal
s —likeAction
有一个values
字段是Signal
. 但就我的逻辑而言,我需要SignalProducer
.
我怎样才能转换Signal
为SignalProducer
?
toSignalProducer(toRACSignal(x))
似乎不是一个好的解决方案
swift - 如果信号已经发生,我如何观察信号并立即接收到“下一个”事件?
我正在尝试包装一个在网络请求后初始化对象的 API 调用。我不希望每个新观察者都发生网络请求,所以据我了解,我不应该使用SignalProducer
. 但是,通过使用单个Signal
,只有第一次使用它会收到一个next
事件,而任何较新的订阅者将永远不会收到当前值。我应该怎么做?我可能对 RAC 做了一些根本性的错误。
我考虑过使用MutableProperty
,但这似乎需要一个默认属性,这似乎没有意义。
我应该怎么做呢?
ios - 使用 ReactiveCocoa 4 和 NSButton 计算 bean
我有以下内容:
- 两个有趣的类:a
ViewController
和 aViewModel
nsButtonMorePlease:NSButton
中view
的一个按钮ViewController
nsTextView:NSTextView
还有一个文本view
框
我想要以下行为:
- 启动程序时,“计数”从 0 开始并显示在文本框中
nsTextView
- 当您按下按钮
nsButtonMorePlease
时,计数会增加 1,1
更新后的计数会反映在nsTextView
我想确保:
- 我用
ReactiveCocoa 4
(这就是重点) - 模型类包含
numberOfBeans: MutableProperty<Int>
开始于0
- 该设计纯粹是功能性的或接近于它-也就是说(如果我理解该术语),链中的每个链接都将鼠标单击事件映射到文本视图
MutableProperty
中numberOfBeans
响应它的事件,都没有副作用。
这就是我所拥有的。公平警告:我相信这并不接近工作或编译。但我确实觉得也许我想使用 , , 等中的一个combineLatest
。collect
只是reduce
迷失了具体要做什么。我确实觉得这让事情变得容易变得非常困难。
reactive-cocoa - 我什么时候应该/必须将 ReactiveCocoa 对象声明/实例化为存储属性而不是局部变量?
(适用于ReactiveCocoa
4 或 3)
在我见过的大多数示例和案例中,将用户界面连接到数据中所涉及的ReactiveCocoa
对象至少在构造函数中调用的某个或类似方法中MutableProperty<TVal, TErr>
实例化。SignalProducer<TVal, TErr>
setupBindings
我经历过几种情况,当我将对象的声明从范围移动到存储属性时,我的非工作代码突然“正常工作”,反之亦然。例如,在伪代码中:
因此,似乎有一些基本问题。
给定一些ReactiveCocoa
对象...
- 我什么时候应该将它声明为属性(
let
或var
)与本地实例变量? - 我什么时候应该将它实例化为存储的、计算的或其他属性与实例的变体
- 什么时候应该是一个函数
return
?
ios - RAC 4.0 如何正确链接 SignalProducers?
我有一个具有几个不同功能的视图模型,如下所示:
现在,这些信号需要按顺序运行——在前一个信号完成之前无法启动。因此,我有另一个函数,称为:
我的印象then
是用于这种行为的功能。Signal3 不应该在 Signal2 完成之前开始,它不应该在 Signal1 完成之前开始。
调用的函数setup
有start()
调用。
我哪里错了?
reactive-cocoa - RAC3/4 中冷信号的多播
我想要两个冷SignalProducer
的 B 和 C,它们都依赖于其他冷SignalProducer
A,它发出 db 实体对象 - 所以对我来说,多播以便完全相同的对象到达 B 和 C 是至关重要的。这是一些图表:
但是因为 B 和 C 有一些转换,这可能需要大量的工作,所以我不希望它们在连接之前发生。
在 RAC2 中,我们在这种情况下工作正常。[[RACSignal
-publish]
-autoconnect
]
正如CHANGELOG所说,来自 RAC2 的多播startWithSignal
使用 .
SignalProducer.buffer
似乎是一个可以接受的解决方案。
在这种情况下,正确的解决方案是什么?