问题标签 [rx-swift]

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

swift - 数组每次迭代的 RxSwift 请求

我正在使用 RxSwift 来获取一些网络数据,并且在为数组的每次迭代执行请求时遇到了麻烦。这是我的想法:

  • 我有一个 API 端点,它返回一个不包含位置数据的 Objs 数组。然后我将遍历 Objs 数组,并为每个获取带有 Obj id 的位置详细信息。像这样的东西:

(代码简化)

  • fetchObjLocationDetails() 类似于:

(代码简化)

这个解决方案并没有真正起作用,因为代码甚至没有进入 subscribe next 闭包中。

请记住,我对 Swift 和 RxSwift 编程都是新手,所以要温柔:) 任何帮助将不胜感激。

0 投票
2 回答
11735 浏览

ios - RxSwift - 去抖动/油门“逆”

假设我有一个即时消息应用程序,每次消息到达时都会播放哔声。我想要debounce哔哔声,但我想播放第一条消息到达的哔哔声,而不是接下来的消息(例如 2 秒的时间跨度)。

另一个示例可能是:我的应用程序发送输入通知(因此与我聊天的用户可以看到我正在输入消息)。我想在开始输入时发送输入通知,但仅以 X 秒为间隔发送新通知,因此我不会为我输入的每个字符发送输入通知。

这有意义吗?有运营商吗?现有的运营商能做到吗?

这是我的第一个示例的代码。我现在正在用 解决它debounce,但这并不理想。如果我每隔 1 秒收到 1000 条消息,则在最后一条消息到达之前它不会播放声音(我想在第一条消息上播放声音)。

谢谢!

0 投票
1 回答
1849 浏览

swift - 如何将 Observable 绑定到 UITableView

我对 RxSwift 比较陌生。我有一个 Observable,想将它绑定到 UITableView。到目前为止,我发现的所有示例和解决方案都使用 Observables<[Item]> 将其绑定到 TableView - 但我没有 Array 类型的结果。

如何将我的 Observable 转换为 Observable<[Item]>?或者我将如何使用 Observable 在 TableView 中显示结果?

0 投票
1 回答
8735 浏览

swift - 从 Observable 中只获取一个值

我从 RxSwift 开始,来自 ReactiveCocoa。我有一个概念问题。

假设我有一个想要随时间观察的值,例如温度。所以有很多情况和地方我订阅这个值来对变化做出反应。没问题!

但是当我只需要最新值时,也有一些用例,例如:

所以我只想对该值或至少基于该值进行决策/操作。这促使我接近使用 shareReplay 可观察对象。但是,即使我只想使用一次,是否也需要订阅该值?

还是这种方法完全错误?我将如何处理该用例(随时间推移的值与仅访问最后一个值一次)?我需要来源,一热一冷吗?

0 投票
3 回答
1108 浏览

swift - RxSwift 相当于 DefaultIfEmpty

似乎 rx-swift 还没有实现DefaultIfEmpty。还有另一种方法可以模仿这种行为吗?

0 投票
1 回答
2500 浏览

ios - 将 UIApplicationDelegate 方法转换为 RxSwift Observables

UIScrollViewDelegate在 RxSwift / RxCocoa 中,您可以为委托(例如或)创建一个反应式包装器,CLLocationManagerDelegate以便为某些委托方法启用 Rx 可观察序列。

我正在尝试为该UIApplicationDelegate方法实现这个applicationDidBecomeActive:

到目前为止,我尝试的非常简单,类似于DelegateProxyRxCocoa 中包含的子类。

我创建了我的DelegateProxy子类:

和一个 Rx 扩展UIApplication

在我的 AppDelegate 中,我订阅了 observable:

当我启动我的应用程序“活动!” 被打印出来,然后我在 RxCocoa 的_RXDelegateProxy_类中得到以下崩溃:

在此处输入图像描述

有人知道问题可能是什么吗?或者有没有人成功实施过类似的东西rx_applicationDidBecomeActive

0 投票
1 回答
381 浏览

ios - RxSwift 无法识别订阅方法

我正在为我的 iOS 应用程序使用 RxSwift。

我有一个函数,它返回一个Observable名为Repository.

基本上,它向 github 发出网络请求以下载给定搜索查询的存储库。

现在,当我调用这个函数时,我会按照RxSwift 文档中的示例进行操作:

但是 Xcode 说

无法使用类型为“((存储库)->())”的参数列表调用“subscribeNext”

这很奇怪,因为这是 Xcode 在我使用自动完成时建议起诉的内容。我已经尝试过清理并重新构建。即使我使用另一种订阅方法,我也会遇到同样的错误。

那么,这有什么问题呢?

0 投票
2 回答
1737 浏览

ios - RxSwift rx_text 双向绑定崩溃

<->我正在尝试使用示例中的运算符进行简单的双向绑定。

编辑此文本视图会导致异常,我不确定如何解决它。

我能够在2.1.02.2.0

有人对如何解决这个问题有任何想法吗?

0 投票
1 回答
3115 浏览

swift - RxSwift 正确的方式

我正在尝试使用 RxSwift 编写一个 MVVM,并且与我过去在 ReactiveCocoa for Objective-C 中所做的相比,以正确的方式编写我的服务有点困难。

一个例子是登录服务。

使用 ReactiveCocoa (Objective-C) 我编写如下代码:

我的 viewModel 应该是这样的:

现在在 RxSwift 中,我编写的内容与以下内容相同:

我正在以这种方式更改按钮状态,因为我不能这样做:

和我的视图模型

我使用 Driver 是因为它包含了一些不错的功能,例如:catchErrorJustReturn(),但我真的不喜欢我这样做的方式:

1)我必须将用户名和密码字段作为参数发送到viewModel(顺便说一句,这更容易解决)

2 ) 我不喜欢我的 viewController 在点击登录按钮时完成所有工作的方式,viewController 不需要知道它应该调用哪个服务来获取登录访问权限,这是一个 viewModel 工作。

3 ) 我无法在订阅之外访问用户名和密码的存储值。

有不同的方法可以做到这一点吗?你们 Rx'ers 是怎么做这种事情的?非常感谢。

0 投票
1 回答
9957 浏览

swift - 如何在 RxSwift 中观察数组属性的变化

这是我的课:

我想每次 myArray 指向一个新数组时触发一个事件,如下所示:

我试过 rx_observe 但失败了,这是我的代码:

只是第一次触发,有什么问题吗?