问题标签 [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.
ios - 为什么 SignalProducer 不返回信号?
我觉得我理解了 ReactiveCocoa 的所有基本组件(从概念上),通过理解如何将所有部分连接在一起仍然有点混乱。
例如,在阅读了 Signal 之后,我完全期望 SignalProducer 只有一个返回 Signal 的 start() 方法,您可以像这样使用它:
相反,您必须将观察者传递给 start(),然后 SignalProducer 会为您调用 observe():
这意味着 SignalProducer 的接口要大得多(更容易理解),因为 observe() 的所有变体都必须在 start() 上复制(例如 startNext() 等)。
我认为这里有两种可能:
- start() 不能简单地返回信号有技术原因
- 我在概念上误解了 SignalProducer,导致对其界面的期望不稳
如果 1 是这种情况,我猜这与我还不完全理解的内存管理和一次性用品有关。
我更担心的是2。在内部,我对 SignalProducer 的理解基本上映射到了工厂的概念,例如:
这就是为什么我很惊讶我们没有找到返回信号的 start()。
如果社区可以在这里提供一些启示,我将不胜感激。
谢谢!
ios - 使用 ReactiveCocoa 4 的 UIWebView 绑定
我正在尝试使用反应性可可 4 进行我的第一个项目。在 ViewModel 中,我有
并且 inViewController
具有约束力
我正在使用UIKit
Colin Eberhardt 的绑定扩展(https://github.com/ColinEberhardt/ReactiveTwitterSearch/blob/master/ReactiveTwitterSearch/Util/UIKitExtensions.swift)。它适用于UILabel
等。
我的应用程序正在使用UIWebView
,所以我需要绑定UIWebView
. 我不知道该怎么做。目前在我的非反应性代码中,我正在使用loadHTMLString
将内容加载到我的 webView 的方法,但我不知道如何webView
与 ViewModel 绑定。
有人知道怎么绑定UIWebView
吗?
swift - 使用 combineLatest 的个别失败会发生什么?
如果我有两个 SignalProducers(实际上它们是 API 服务请求,因此它们只发送一次“下一个”),并将它们与 combineLatest 结合起来(因为我想在两者都完成后关闭加载微调器),如果其中一个失败会发生什么?还是两者都失败?
组合信号是否会调用“失败”(一次或两次?)?
如果一个失败而另一个成功,是否会在组合信号上调用“下一个”?
swift - combineLatest 行为 Signal v SignalProducer (ReactiveCocoa 4) 的差异
我目前正在运行基本运算符,并遇到了 combineLatest 运算符的行为差异。我不确定这是一个错误还是我未能理解 Signals 和 SignalProducers 之间的差异。
产生: (1, "A") (1, "B")
但是,如果我使用 SignalProducers 编写我认为等效的代码:
输出:(1,“D”)
我故意将observer.sendCompleted() 排除在SignalProducers 之外,因为我认为这是负责任的,但事实并非如此。我错过了什么?
swift - 如果 Value 是一个数组,则扩展 SignalProducerType
我有一个通过 PrimaryKey 获取数据库对象的协议
并且我想扩展 SignalProducerType 以便能够对该类型的 SignalProducer.Value 进行操作。
因此,单个对象扩展(不是数组中的单个)可以正常工作并实现如下:
但是当我尝试在这些元素的数组上实现它时,我遇到了一些编译挑战:
(1) 我怀疑签名没有正确地将想法传达给编译器
(2) 产生以下错误:
在没有更多上下文的情况下,表达式的类型是模棱两可的
我要解决的问题是如何让编译器识别 SignalProducer 正在运行的Array<P>
P 是 PrimaryKeyConvertible 并相应地对其.map
进行操作...
我目前对数组问题的解决方案是使用下面列出的通用函数来实现:
然后用于例如:
呼叫站点将是:
我更愿意将它作为一个扩展,它会像往常一样流动
更新
我尝试过的另一个版本的功能:(@J.Wang)
(3) 产生错误:
“[PrimaryKeyConvertible]”不能转换为“[GoogleContact]”
ios - 反应性 Cocoa `then` 运算符
我找不到太多关于 RACthen
操作员的文档。它的目的是什么。我应该什么时候使用。它?有人可以在下面的上下文中解释吗?
ios - 如何使用 ReactiveCocoa 4.0 和 MVVM 实现双向绑定
我正在一个使用 Reactive Cocoa 4.0 和 MVVM(swift 2.0)的项目中工作。在视图模型中,我有将根据文本字段更改更新的字符串,但如果字符串更改,我需要更新该文本字段。是否有可能有两种方式文本字段和字符串(ageString)之间的绑定。
ios - 如何在 SignalProducer 上映射值和错误
我该如何映射这个
至
我对语法有点困惑
另外,使用动作的最佳实践应该是什么?NetworkError 是否应该冒泡到控制器,以便它可以在弹出对话框中显示错误?
ios - CocoaAction 不触发动作
我正在尝试让 CocoaAction 调用 Action。CocoaAction 被触发,但 Action 永远不会被执行。谁能看到我在哪里出错了?
ios - ReactiveCocoa 4 - 在点击按钮时需要帮助验证输入
我是 ReactiveCocoa 的新手,我正在尝试找出在点击按钮时验证表单输入的语法。有相当多的validTextSignal 示例代码,但其中大多数要么挂钩到Action-enableIf,要么直接处理UI 绑定。
这个想法很简单,我有一个登录屏幕,有email
输入password
。我想要的是在Login
点击时处理验证以显示 UIAlertView(例如“请输入您的电子邮件”)。
这是我一段时间后发现的,代码有效,但我不确定这是否应该是这样做的方法。
这就是我的使用方法,只需简单地使用按钮中的值TouchUpInside
另外,无论如何我们可以从 Action-enableIf false 中捕获 Interrupted 事件吗?
任何关于更好方法的建议都会非常感激。
干杯