问题标签 [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 回答
3179 浏览

ios - 如何从 ReactiveCocoa 信号中获取“旧值”?

如果我像这样使用 RACable:

如何访问 myProp 的旧值(在更改导致信号触发之前)?所以我可以像这样访问它:

0 投票
1 回答
1228 浏览

ios - RACSignal 间隔不能立即工作

我正在尝试使用 RACSignal 类的 ReactiveCocoa 的间隔方法。以下代码在 1 秒后每秒运行一次。但我希望它立即和每一秒都有效。最好的方法是什么?

0 投票
2 回答
1322 浏览

ios - 有没有人基于 RACSignal 制作了自我更新的可变表视图?

现在有了对 KVO 的全面支持,是否有人制作了一个可变表视图,它以 RACSignal 作为其数据源?理想情况下不需要任何配置的东西。

0 投票
1 回答
3500 浏览

ios - 如何将 ReactiveCocoa 与手势识别器一起使用

我正在使用 ReactiveCocoa 构建一个应用程序。顶视图是一个可以下拉然后向上推的菜单。我必须使用两种不同的手势识别器——一种用于下拉,一种用于向上推。一次只能启用一个——这是我的问题。状态。

我正在使用 BlocksKit 扩展来设置手势识别器。

在我的initWithNibName:bundle:方法中,我正在设置以下RACSubjects.

这里发生了很多事情。问题因为我的主题数量几乎是我在此处列出的两倍(用于平移手势识别器的主题)以及另一组用于与页脚进行类似交互的识别器这一事实而更加严重。这是很多科目。

我的问题分为两部分:

  1. 有没有更好的方法来设置我想要的那种链接?我也在我的俯卧撑手势中重新使用了一些主题,看起来非常相似。我有很多,RACSubjects而且看起来很笨拙。
  2. menuFinishedTransitionSubject本质上用于管理手势识别器的状态。我尝试绑定他们的enabled财产没有任何运气。这里有什么建议吗?
0 投票
2 回答
2984 浏览

ios - 使用 ReactiveCocoa 每小时执行一次操作

尝试遵循 ReactiveCocoa 的最佳实践,每小时更新我的​​ UI。这就是我所拥有的:

这有一些明显的缺陷:手动订阅和发送,它只是“感觉不对”。关于如何使其更具“反应性”的任何想法?

0 投票
1 回答
819 浏览

ios - KVO 通知上的间歇性崩溃

这是发生了什么:我有一个单例监视设备的事件存储以进行更改。我有一个名为的属性events,我用eventsSignal RACSignal.

当应用程序完成启动时,它会提示用户使用requestAccessToEntityType:completion:. 完成块在后台队列上执行,所以我调度回主队列:

[self refresh]从事件存储中加载新事件的调用,然后调用

在这一行,应用程序崩溃。

完整的堆栈跟踪如下。我已经尝试删除调度调用,总是_eventSignal在主线程调度程序上调度,并查看我订阅事件信号的所有地方(看起来都不错)。有什么我可能会丢失的吗?

编辑:我已将问题隔离在以下代码中。如果nextEventSignal订阅了 ,那么崩溃发生的时间大约有一半。如果我从通话中删除第二个信号combineLatest:reduce,那么它不会崩溃。

这是崩溃日志。

0 投票
2 回答
1573 浏览

objective-c - 使用 ReactiveCocoa 根据 NSSet 对象计数启用按钮

我正在尝试使用 ReactiveCocoa 来启用按钮,具体取决于 NSMutableSet 实例中的对象数量是否大于零。

我正在使用以下代码,但在运行时遇到崩溃。有任何想法吗?

'NSInvalidArgumentException',原因:'-[__NSSetM map:]:无法识别的选择器发送到实例 0x9671d10'

0 投票
2 回答
3825 浏览

ios - 重构为 ReactiveCocoa

所以我最近才开始使用 ReactiveCocoa,我认为最好的学习方法就是直接进入并开始重构我拥有的一些现有代码。我想得到一些批评,并确保我朝着正确的方向前进。

所以在我正在重构的应用程序中,我有大量的代码是这样的:

我目前在 ReactiveCocoa 中对此进行了重构,如下所示:

这是关于我应该如何处理它,使用 RACSubject,还是有更好的方法?这整个概念对我来说是新的,因为到目前为止我唯一的编程语言是 Java 和 Objective-C,所以这种功能反应式的思维方式让我有点失望。

0 投票
1 回答
1154 浏览

objective-c - 使用 ReactiveCocoa 触发模型持久化有意义吗

我正在尝试进入 Reactive 世界,但仍然发现我对最佳实践的理解不足。ReactiveCocoa 似乎最常用于 MVC 的 VC 端。我正在寻找一种在模型中使用它的方法。

我目前的想法是在我的模型对象上拥有一个名为“ saveRequests ”的RACSubject属性- 当模型对象发生变化时,它会在其saveRequests属性上调用“ sendNext :” ...基本上将自己标记为脏。

AppDelegate中,我订阅了我的父模型对象的saveRequests信号,并在下一个信号时保存到磁盘(每 2 秒缓冲一次以避免磁盘操作过载)。这似乎有效,但我想通过级联 saveRequest 信号来更进一步。

我有一个模型对象,它拥有一组其他模型对象。当其中一个对象触发 saveRequest 信号时,我希望父对象依次触发其 saveRequest 信号。我通过让父对象在添加每个子对象时订阅它来实现这一点。

但是,当从父级删除子模型对象时,我希望父级取消订阅来自子级的任何进一步 saveRequests - 我知道只有在子对象被释放时才会自动取消订阅(如果孩子被别的东西抓住了)。

所以,有几个问题:

  • 作为模型将自己标记为脏并触发持久性的一种方式,这甚至是一个明智的想法吗?
  • 我已经读到RACSubject可能不是最好的使用 - 我应该使用RACSignal代替,为什么?
  • 为了取消订阅每个子对象,我需要使用RACDisposable,对吗?是使用订阅信号时返回的唯一方法吗?在这种情况下,我是否需要在父对象中挂起它?
  • 关于级联 saveRequest 信号,我是否在这里重新发明了一个方轮?似乎有很多使用 RAC api 的方法 - 有没有更好的解决方案可以满足我的需求?

在此先感谢 - 这个反应式的东西很吸引人,但需要转变思维方式,如果不遵循最佳实践,似乎很容易被滥用。

劳里

0 投票
1 回答
1366 浏览

afnetworking - 使用 ReactiveCocoa 组合多个网络请求

我正在探索 ReactiveCocoa 并尝试看看有什么可能。我遇到的问题是将几个网络请求链接在一起。

我有 2 个调用,第一个获取标识符列表,然后对于每个标识符,我调用以获取与该 id 对应的数据并创建一个模型对象并返回一个对象数组。

我正在使用 AFNetworking 的 RACEExtensions 来发出请求。代码看起来像这样:

identifiersSignal 方法如下所示:

这将返回 json 字典,如下所示:

我现在实际上是在嘲笑这些调用,我知道它们是独立工作的,我只是试图使用 ReacticeCocoa 将它们拼凑在一起。

我无法弄清楚或找到任何关于如何使用 ReactiveCocoa 实现这一点的体面示例,尽管我非常有信心它可以做到。