问题标签 [reactive-cocoa]

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

ios - 每当使用 UIButton 重置 UITextField 时都不会生成 RACSignal

我已经UITextFieldUIImageView并且UIButton在我的UIView.

我有一个在订阅时RACSignal使用的打印文本框字段值。NSLog此外,它还UIImageView充当错误指示器。

代码片段如下所示:

每当我使用重置按钮重置字段时,文本字段都会被清除,但nameIndicator不会反映相应的更改。但是,如果我使用退格键重置该字段,nameIndicator则会从GreenStar.png变为RedStar.png

谁能建议我重置文本字段和nameIndicator图像所需的更正?

0 投票
2 回答
437 浏览

ios - 组合信号,但仅在第一个更改时订阅

我想将rac_signalForControlEventUIButton 上的 on 与一些组合的 textFields 信号结合起来,如下所示:

但是这样我必须过滤按钮突出显示的状态,否则subscribeNext:每次某些文本字段更改(textFieldsCombinedSignal)时都会触发该块。

我很想实现这一点,而不必过滤突出显示按钮的状态(毕竟我正在使用 ReactiveCocoa 来最小化状态,而且我觉得这不是做我想做的事情的正确方法)。

0 投票
2 回答
769 浏览

ios - 如何使用 Reactive Cocoa 按顺序并行 AFNetworking 请求和处理响应

我正在尝试从 5 个不同的 URL 获取 JSON 数据。网络请求可以并行执行,但响应必须按特定顺序处理。另外,我也想有单点的错误处理逻辑。

我现在拥有的代码如下所示。问题是,只有订阅signalFivesignalSix已被调用。所有其他信号的subscribeNext块从未被调用过。我怀疑问题是因为订阅发生在发生之后sendNext

有没有更好/标准的方法来执行这种请求?

0 投票
1 回答
1437 浏览

reactive-cocoa - RACChannel:没有看到我期望的双向绑定

(也在GitHub 上向 ReactiveCocoa 人员开放评论。)

我正在一个非常简单的RACTest(源代码在 GitHub 上)应用程序中尝试 ReactiveCocoa,试图通过实际使用它来巩固我的理论理解。

我有一个RACChannel,我RAC(),提供了一个ed l-value 和我指定为参数的任何东西之间的双向绑定RACChannel

我的用法如下:

我看到变化从一个方向流动,从_ticker.accumulateEnabledto self.paused,但变化 toself.paused没有流回_ticker

我误解了RACChannel吗?它有什么用,这不是预期的用途吗?

0 投票
0 回答
295 浏览

reactive-programming - Reactive Programming 和 Reactive Cocoa 在 iOS 中的应用

我是响应式编程范式的新手。我在 GitHub 上浏览了 Reactive Cocoa 的文档。我发现了一些应用程序,例如替换 KVO、n/w 中的异步编程、用户界面交互和动画。

但是,我很想知道其他领域的几个例子可以成为反应式编程应用程序的候选者(尤其是 iOS 中的反应式 Cocoa)

谢谢你

0 投票
1 回答
1140 浏览

ios - 构建应用程序以使用带有 ReactiveCocoa 的 ViewModel

我从 ReactiveCocoa 开始。简单的事情是有道理的,但我还不能做复杂的事情。;)

这就是我要建模的内容:我有一个视图控制器,它显示从 HTTP 端点请求的一些数据。HTTP 端点使用类似于浏览器的基本身份验证和 cookie。

所以,我想发出那个 HTTP 请求。如果成功,很好,显示数据。如果它以 401 失败,我需要告诉视图弹出一个模式对话框,询问用户名/密码,然后重试 HTTP 请求。

那么,在我的 ViewModel 中,我有两个信号吗?一个返回内容,另一个告诉视图层我需要凭据?如何将凭据返回到 HTTP 请求发生的位置?

0 投票
1 回答
618 浏览

ios - 使用 ReactiveCocoa 在模型更新时查看控制器状态更新

当我慢慢尝试围绕 ReactiveCocoa 进行思考时,我编写了这段代码,并且我相当确定有更好的方法来解决我的问题。我很感激有关如何改善/重新设计我的情况的意见。

这是做什么的:

我有一个视图控制器,它有一个名为projecttypeMyProject的属性和一个taskstype的属性NSArray。一个项目有一个tasks返回 s 数组的信号MyTask。可以随时从外部更改项目。我希望我的视图控制器在发生上述情况时做出响应并自行刷新。

我试图解决的问题:

我曾经[[project tasks] subscribeNext:...]在第一个块中,直到我意识到如果 webrequest 花费的时间太长并且我同时切换了项目,我会在新的上下文中从旧项目接收并分配数据!(此后不久,新数据集到达,一切恢复正常)。

尽管如此,这就是我遇到的问题,我通过使用该takeUntilBlock:方法解决了它。我的问题是:我怎样才能简化/重新设计这个?

0 投票
2 回答
1082 浏览

objective-c - 以 at (@) 符号为前缀的 Objective-C 宏的含义

ReactiveCocoa 框架使用weakifystrongify宏,它们前面都有一个“@”符号。

这是一个示例(来自此文件)。

作为宏名称前缀的 at 符号有什么意义?(注意:我检查了宏,它被称为'weakify',而不是'@weakify',所以它不仅仅是宏名称!)。

宏本身在这里定义:

https://github.com/jspahrsummers/libextobjc/blob/master/extobjc/EXTScope.h#L45

0 投票
1 回答
533 浏览

ios - 检测 RACSignal 的最佳实践

我的任务是向应用程序添加一些检测逻辑,以跟踪各种 API 调用的延迟。我正在努力想出一种干净、无副作用的方法来向返回 RACSignal(延迟执行 API 调用)的方法添加计时检测。

注意事项

  • 使用 ReactiveCocoa @ 1.9.5(目前无法升级)
  • 使用Parse-RACExtensions @ 0.0.2
  • 我更喜欢在 ViewModel 层设置计时,而不是修改 Parse-RACExtensions。这是因为 VM 有我想要记录的额外信息,例如查询参数,而且我不需要检测每个 API 调用。
  • 仅在收到completed事件后记录时间
  • 本着无痛仪器的精神,调用者的负担应该尽可能小

尝试的解决方案

我唯一能想到的就是创建一个具体的 RACSubscriber 子类来处理定时器逻辑。除了讨厌的子类之外,这显然并不理想,因为它需要一个显式的subscribe:,而这又需要一个replayon 源信号。此外,调用者有负担,因为他们必须至少重构以获得信号的临时句柄。

用法如下所示:

显然,我对这个实现不满意。

最后的想法

理想情况下,我想要这样的可链接方法,但我不确定如何实现它/是否可以在类别方法中处理冷信号而不会产生讨厌的副作用(比如调用replay接收器) .

想法?

0 投票
3 回答
1864 浏览

ios - ReactiveCocoa - 将副作用变成信号

在我的应用程序中,我有一个信号通过flattenMap. 我想在网络活动正在进行时显示加载指示器。

我目前的解决方案工作得很好:

这可行,但是我想更改上面的代码,以便hidden可以通过信号设置加载指示器的属性。

这可能吗?

在我的应用程序的其他地方,我有更复杂的要求,其中元素的可见性取决于几个不同的“事件”,能够通过信号组合这些事件会好得多。