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

swift - RXSwift 用户输入错误和继续

我对 RX 很陌生,我试图了解如何在出现需要用户输入的错误后继续执行任务。

一个具体的例子是两因素身份验证。我们有一个身份验证服务和一个受保护的资源。登录后,我们从 auth-service 收到一个 LOA-2(使用的用户名和密码)令牌。尝试从受保护的资源中获取数据时,我们收到一条错误消息,指出我们需要 LOA-3(双因素)。因此,我们必须从用户那里获取输入,将其发送到身份验证服务,获取新令牌(LOA-3)并使用新令牌重试我们的 fetch 调用。

有很多登录示例,但我无法继续使用需要用户输入的链。

有任何想法吗?谢谢 :)

0 投票
1 回答
797 浏览

swift - 用于 Bonjour Discovery 的 RxSwift 和嵌套订阅

我对 Rx 非常陌生,并且一直在尝试制作一个解析服务的 Bonjour 发现客户端。这很简单,但我想尝试使用 RxSwift。

由于发现的 NSNetService 对象需要在解析之前持久化,所以我不得不进行嵌套订阅调用,外部订阅调用用于发现,内部调用用于解析……但有些事情告诉我这不是最好的方法。

我的代理类如下:

如果我flatMapbrowser.rx_netServiceBrowserDidFindServiceMoreComing调用之后使用而不是subscribeNext,则服务将无法解析,因为我无法从内部将其持久化到数组中flatMap,原因是我无法理解,主要是因为从未接触过 Rx。我一定要使用嵌套调用吗?

我的问题的简短版本是上述作品,但对我来说似乎很复杂。任何想法将不胜感激。

0 投票
1 回答
1411 浏览

swift - 如何使用 RxSwift 在一个地方捕获来自两个请求的错误

我很新,我想知道如何从一个地方压缩的请求中捕获错误(见上面的片段)。在当前的实现中,我在两个地方进行了错误处理,但我的目标是将它放在一个地方。我的请求已压缩,因为如果此请求之一失败,整个序列将失败,因此我希望在两个请求的代码中都有一个错误处理位置。

..也许与示例代码的一些链接在常见的地方处理错误对我来说很棒。非常感谢。

0 投票
1 回答
12920 浏览

ios - 在 RxSwift 中处理一次性 observable 的正确方法

我有一个我只想启动一次的 observable。文档说:

使用 dispose bag 或 takeUntil 操作符是确保资源得到清理的可靠方法。我们建议在生产中使用它们,即使序列将在有限时间内终止。

我的 observable 仅在一个事件后终止

假设我对取消这个 observable 的订阅者不感兴趣,我只想让它运行一次并完成。我希望这个 observable 的生命周期在工作本身完成时结束。这意味着我可以看到 disposeBag 没有好的候选人。takeUntil 还期待一个“事件”,而且我看不到好的事件。

现在我只是通过扔掉一次性用品来解决警告:

有没有办法做到这一点,或者我应该使用不同的范例?

0 投票
2 回答
11604 浏览

ios - RxSwift,我如何链接不同的 observables

我仍然是 Reactive 编程和 RxSwift 的初学者。我想链接两个不同的操作。就我而言,我只是想从 Web 服务器下载一个 zip 文件,然后在本地解压缩。我也想,同时显示下载文件的进度。所以我开始创建第一个 observable:

之后,我为解压缩创建了一个类似的函数

现在我在“查看模型层”上有这个逻辑,所以我下载->订阅完成->解压缩

我想要的是将两个 Observable 合二为一,以便先执行下载,然后完成解压缩文件。有没有办法做到这一点?

0 投票
1 回答
1830 浏览

swift - RxAlamofire + 组合信号

我有一个简单的服务器请求,我想过滤并生成一个新的 Observable,用 JSON 数据验证请求。

我必须这样做,因为即使我的请求无效,我的服务器响应也会返回状态码 200。但我可以在我的 Json 响应中过滤这个结果:

服务器响应:

杰森:

我的 rx 请求是:

我的问题是:当我的 json 通过(状态码在 200 和 300 之间)时,我发送一个 Event Next 并在 Event Complete 之后,这完成了这个信号并且第一个信号也完成了。但是当我在验证我的 JSON 时发送一个事件错误时,第一个信号永远不会完成或失败。我怎样才能做到这一点?

谢谢

0 投票
3 回答
3715 浏览

swift - 有没有办法在 Swift (KVO) 中制作可观察的枚举

我正在尝试使用 RxSwift 在 MVVM 中进行绑定。我有一个Enum

和考试课

并希望观察以下变化:

但程序与 *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<RDProject.Test 0x7ff373513020> addObserver:<RxCocoa.KVOObserver 0x7ff37351a420> forKeyPath:@"color" options:5 context:0x0] was sent to an object that is not KVC-compliant for the "color" property.'

简单String作品的代码:

我在这里发现,要让类不是从我那里继承的,NSObject我应该让它dynamic,但我不能让它成为Enum动态的。有没有办法让Enumobservable?

0 投票
2 回答
12749 浏览

ios - 在 RxSwift 中手动发出事件

我是 RxSwift 的新手,需要非常基本的帮助。
假设我有一个 Observable 并像这样订阅它。

订阅是这样的:

问题是:我怎样才能在每次需要时手动发出事件来 subscribeNext。这就像rx_tap. 我在示例代码中看到类似这样的内容。之后,每次用户点击按钮时,都会发出一个事件并在 subscribeNext() 上触发。我也希望有这种行为,但以编程方式,而不是来自 UI 事件。UIButton
source = button.rx_tap.asObservale()

0 投票
7 回答
22579 浏览

swift - 可观察的当前值和先前值

我有一个变量,它是一个枚举值数组。这些值随时间而变化。

然后我观察这个变量的变化。问题是,我需要知道最新值和以前值之间的差异。我目前正在这样做:

RxSwift 有内置的东西可以更好地管理这个吗?有没有办法总是从信号中获取先前和当前的值?

0 投票
1 回答
816 浏览

ios - 带有 Realm 对象存储的 RxSwift 变量

我在理解是否支持将 RxSwift 与 Realm 结合使用时遇到了一些问题,因为 Realm 明确声明了支持的变量类型。

是否可以代替以下内容。

做这样的事情。

我做了一些谷歌搜索,但没有找到任何关于扩展或其他解决方案的最新信息。将不胜感激任何帮助或只是指向正确的方向。