问题标签 [reactive-cocoa-4]

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

ios - 为什么 SignalProducer 不返回信号?

我觉得我理解了 ReactiveCocoa 的所有基本组件(从概念上),通过理解如何将所有部分连接在一起仍然有点混乱。

例如,在阅读了 Signal 之后,我完全期望 SignalProducer 只有一个返回 Signal 的 start() 方法,您可以像这样使用它:

相反,您必须将观察者传递给 start(),然后 SignalProducer 会为您调用 observe():

这意味着 SignalProducer 的接口要大得多(更容易理解),因为 observe() 的所有变体都必须在 start() 上复制(例如 startNext() 等)。

我认为这里有两种可能:

  1. start() 不能简单地返回信号有技术原因
  2. 我在概念上误解了 SignalProducer,导致对其界面的期望不稳

如果 1 是这种情况,我猜这与我还不完全理解的内存管理和一次性用品有关。

我更担心的是2。在内部,我对 SignalProducer 的理解基本上映射到了工厂的概念,例如:

这就是为什么我很惊讶我们没有找到返回信号的 start()。

如果社区可以在这里提供一些启示,我将不胜感激。

谢谢!

0 投票
1 回答
371 浏览

ios - 使用 ReactiveCocoa 4 的 UIWebView 绑定

我正在尝试使用反应性可可 4 进行我的第一个项目。在 ViewModel 中,我有

并且 inViewController具有约束力

我正在使用UIKitColin Eberhardt 的绑定扩展(https://github.com/ColinEberhardt/ReactiveTwitterSearch/blob/master/ReactiveTwitterSearch/Util/UIKitExtensions.swift)。它适用于UILabel等。

我的应用程序正在使用UIWebView,所以我需要绑定UIWebView. 我不知道该怎么做。目前在我的非反应性代码中,我正在使用loadHTMLString将内容加载到我的 webView 的方法,但我不知道如何webView与 ViewModel 绑定。

有人知道怎么绑定UIWebView吗?

0 投票
1 回答
319 浏览

swift - 使用 combineLatest 的个别失败会发生什么?

如果我有两个 SignalProducers(实际上它们是 API 服务请求,因此它们只发送一次“下一个”),并将它们与 combineLatest 结合起来(因为我想在两者都完成后关闭加载微调器),如果其中一个失败会发生什么?还是两者都失败?

组合信号是否会调用“失败”(一次或两次?)?

如果一个失败而另一个成功,是否会在组合信号上调用“下一个”?

0 投票
2 回答
561 浏览

swift - combineLatest 行为 Signal v SignalProducer (ReactiveCocoa 4) 的差异

我目前正在运行基本运算符,并遇到了 combineLatest 运算符的行为差异。我不确定这是一个错误还是我未能理解 Signals 和 SignalProducers 之间的差异。

产生: (1, "A") (1, "B")

但是,如果我使用 SignalProducers 编写我认为等效的代码:

输出:(1,“D”)

我故意将observer.sendCompleted() 排除在SignalProducers 之外,因为我认为这是负责任的,但事实并非如此。我错过了什么?

0 投票
1 回答
100 浏览

swift - 如果 Value 是一个数组,则扩展 SignalProducerType

我有一个通过 PrimaryKey 获取数据库对象的协议

并且我想扩展 SignalProducerType 以便能够对该类型的 SignalProducer.Value 进行操作。

因此,单个对象扩展(不是数组中的单个)可以正常工作并实现如下:

但是当我尝试在这些元素的数组上实现它时,我遇到了一些编译挑战:

(1) 我怀疑签名没有正确地将想法传达给编译器

(2) 产生以下错误:

在没有更多上下文的情况下,表达式的类型是模棱两可的

我要解决的问题是如何让编译器识别 SignalProducer 正在运行的Array<P>P 是 PrimaryKeyConvertible 并相应地对其.map进行操作...

我目前对数组问题的解决方案是使用下面列出的通用函数来实现:

然后用于例如:

呼叫站点将是:

我更愿意将它作为一个扩展,它会像往常一样流动

更新

我尝试过的另一个版本的功能:(@J.Wang)

(3) 产生错误:

“[PrimaryKeyConvertible]”不能转换为“[GoogleContact]”

0 投票
2 回答
261 浏览

ios - 反应性 Cocoa `then` 运算符

我找不到太多关于 RACthen操作员的文档。它的目的是什么。我应该什么时候使用。它?有人可以在下面的上下文中解释吗?

0 投票
2 回答
1182 浏览

ios - 如何使用 ReactiveCocoa 4.0 和 MVVM 实现双向绑定

我正在一个使用 Reactive Cocoa 4.0 和 MVVM(swift 2.0)的项目中工作。在视图模型中,我有将根据文本字段更改更新的字符串,但如果字符串更改,我需要更新该文本字段。是否有可能有两种方式文本字段和字符串(ageString)之间的绑定。

0 投票
1 回答
1037 浏览

ios - 如何在 SignalProducer 上映射值和错误

我该如何映射这个

我对语法有点困惑

另外,使用动作的最佳实践应该是什么?NetworkError 是否应该冒泡到控制器,以便它可以在弹出对话框中显示错误?

0 投票
1 回答
461 浏览

ios - CocoaAction 不触发动作

我正在尝试让 CocoaAction 调用 Action。CocoaAction 被触发,但 Action 永远不会被执行。谁能看到我在哪里出错了?

0 投票
1 回答
154 浏览

ios - ReactiveCocoa 4 - 在点击按钮时需要帮助验证输入

我是 ReactiveCocoa 的新手,我正在尝试找出在点击按钮时验证表单输入的语法。有相当多的validTextSignal 示例代码,但其中大多数要么挂钩到Action-enableIf,要么直接处理UI 绑定。

这个想法很简单,我有一个登录屏幕,有email输入password。我想要的是在Login点击时处理验证以显示 UIAlertView(例如“请输入您的电子邮件”)。

这是我一段时间后发现的,代码有效,但我不确定这是否应该是这样做的方法。

这就是我的使用方法,只需简单地使用按钮中的值TouchUpInside

另外,无论如何我们可以从 Action-enableIf false 中捕获 Interrupted 事件吗?

任何关于更好方法的建议都会非常感激。

干杯