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

ios - 如何链接 Observables 并为错误处理创建一个通用位置

我想知道如何以更优雅的方式编写我的代码......我有两个请求,第二个请求必须等待第一个请求。如果第一个失败了整个句子应该失败,我想知道如何在一个常见的地方捕获错误?

如您所见,没有任何地方可以进行错误处理...我不知道如何对其建模,此时链中的每个下一个请求都会创建下一个缩进级别...在我看来,这不是很好的使用迅捷...

..一些提示或与示例代码的链接在常见的地方处理错误对我来说非常有用。

0 投票
1 回答
4363 浏览

swift - 使用 RxSwift 的简单可观察结构?

我试图在 Swift 中提出一个简单的可观察对象,并考虑使用RxSwift。我找不到一个简单的例子来做这样的事情:

以上是这篇博文中可观察的纯 Swift 解决方案;我真的很喜欢它是一个基于协议的解决方案而不是侵入性的。就我而言,我的项目中有一个对象,其中每个属性都是在后台异步设置的(蓝牙设备)。所以我需要观察/订阅更改,而不是实时获取/设置属性。

我一直听说 RxSwift 会做到这一点,甚至更多。但是,我找不到一个简单的例子来匹配上面的内容,并开始认为 RxSwift 对我的需要来说太过分了?谢谢你的帮助。

0 投票
1 回答
860 浏览

java - 具有最后状态的 RxJava Observable

我从 RxJava 开始,我想创建一个可以保存最后一个状态的 observable……

在 RxSwift 中,这将是变量(https://github.com/ReactiveX/RxSwift/blob/master/Documentation/GettingStarted.md#variables),但我在 RxJava 中找不到等价物……

我找到了解决方法,但它有很多样板代码

RxSwift 等价物是这样的

你能帮我吗?谢谢

0 投票
1 回答
1344 浏览

ios - Rx_Swift 用于本地和推送通知

如何在收到本地通知和推送通知时实现 observable。在应用程序委托中,我们会收到通知

如何在其他屏幕上收听这些通知?我使用 NotificationCenter 进行通知,但现在我想使用 RX-Swift。我已经尝试过这种方式,但没有工作。

谁能帮我?

更新:

嗨,我找到了一个解决方案,使用的方式与您使用的方式相同,但有一些变化。

从 AppDelegate 发送通知:

然后观察任何其他类。

这个类最好的一点是我们可以通过它发出和使用任何对象。

0 投票
1 回答
4317 浏览

ios - 使用 Rx 编程 (Moya) 将 JSON 响应映射到对象

我目前正在尝试学习 Rx 编程。我发现 Moya 很有趣,并且一直在尝试实现一个简单的网络请求,然后将其映射到我可以用来填充 tableView 的对象。

我一直在关注本教程:http ://www.thedroidsonroids.com/blog/ios/rxswift-examples-3-networking/

我相信我在使用.debug并获得以下输出时得到了成功的响应:

这是我正在使用的代码:

这是我要映射到的对象:

我查看了网络响应,想知道是否首先需要抽象“火车”数据。我已经通过映射到以下对象来尝试这个,但运气不好:

请在此处找到示例 json 响应:http: //pastebin.com/Wvx8d5Lg

所以我想知道是否有人可以帮助我了解为什么我无法将响应转换为对象。谢谢。

=======

我已尝试进行 pod 更新,但仍然无法正常工作。这是我将它绑定到 tableView 的地方:

绑定到(我设置单元格的位置)中的代码永远不会被调用。此外,如果我在我的火车映射器类中放置一个断点,它也永远不会被调用。

0 投票
1 回答
952 浏览

swift - 如何从 CLLocationManager 更新创建 Observable

RxSwift在我的应用程序中使用库。我正在尝试转换我的应用程序逻辑以处理 GPS 位置更新并将其移至可观察对象。为此,我一直使用此代码作为基线: https ://github.com/ReactiveX/RxSwift/blob/master/RxExample/RxExample/Examples/GeolocationExample/GeolocationViewController.swift

但是,在上面的代码中,更新通过 UIView 扩展直接传递给 UIElement。这对我没有用,因为我需要将这些更新传递给非 UI 观察者变量以进行进一步的后台处理。

我是 RxSwift 的新手,我不知道在这种情况下如何构建我需要的 Observer 类型。我也无法在 RxSwift 文档中找到它。

如果有人可以评论如何使用 RxSwift 实现 CLLocationManager 的实现,我将不胜感激。

0 投票
1 回答
1459 浏览

ios - How to use dataSource and delegate methods with RxSwift

I'm trying to use UIPickerView with RxSwift. Is there a way to wrap the UIPickerView dataSource and delegate methods to be used with Observables? I'm trying to do something like

I see there is a premade library for UITableview https://github.com/RxSwiftCommunity/RxDataSources but I'm wondering if there's an easy way to generalize this for other things that require dataSource and delegate using RxSwift.

0 投票
1 回答
2798 浏览

ios - RXSwift - takeUntil 在下一个事件之前取消

遵循与问题 39 类似的示例:http: //reactivex.io/learnrx/

我正在尝试将方法调用search(query: String)转换为这些调用的序列。他们实现这一点的方法是创建一个,每次调用该方法时Variable我都会使用该值进行更新。querysearch(query: String)

然后我在我的init()

如果我输入"ABC", 我的search(query: String)方法将被调用 3 次"A", "AB", "ABC"。那将被映射到seq(["A", "AB", "ABC"])with queryVariable.asObservable()。然后我将其映射到 Facebook 搜索(在 Facebook 上按姓名搜索人)。和subscribeNext我一起打印名字。如果我不使用takeUntil,它会按我的预期工作,我会得到 3 组结果,每个查询("A", "AB", "ABC")一组。

但是,如果我快速输入(在 Facebook 有时间响应请求之前),我只想要一个结果,用于 query "ABC"。这就是我添加takeUntil. 有了它,我希望facebookSearch(query: String)下一个调用会被忽略query,但是当前查询正在取消它,所以takeUntil我最终什么也没打印。

这是一个已知问题还是我做错了什么?

0 投票
3 回答
2178 浏览

swift - 调用中的 RxCocoa 额外参数

我正在尝试将数据附加到 UITableView。我在这里下载了项目表格,并使用了将数据附加到 tableView 的代码:http: //yannickloriot.com/2016/01/make-uitableview-reactive-with-rxswift/

首先,我创建了以下变量:

然后我尝试执行以下操作:

但我收到以下警告:'Extra argument in call' on the line .bindTo。我尝试添加一个新单元并获得相同的结果。不确定它是否相关,但我已经注册了单元格。

我在这里读到,如果参数的类型不匹配,您会收到此警告:Swift - Extra Argument in call。但是看起来参数匹配得很好。

我是 Rx 的新手,希望有人能帮助我了解这里可能出了什么问题。谢谢。

======

编辑

这是我的新代码。我rx_itemsWithCellIdentifier("ChoiceCell")独自尝试过rx_itemsWithCellIdentifier("ChoiceCell", cellType: ChoiceCell.self)

在我使用过的地方(出租车),它是一系列出租车项目。见下图:

在此处输入图像描述

同样,一旦我调用了 .asObservable(),我就会得到以下信息:

在此处输入图像描述

我设法通过删除线将这些打印出来.bindTo。如果我将该行添加回来,我会得到与以前相同的错误。

重要提示:我使用了之前链接到的文章中的代码库。如果我从 ChoiceCell 中删除,我可以复制相同的错误:

0 投票
1 回答
2269 浏览

ios - RxSwift:如何使用 shareReplay 懒惰地获取订阅

所以我希望能够在没有人订阅的情况下懒惰地订阅共享数据,而不会持续存在。然后如果有人再次订阅,就会创建一个新的 observable。我会使用一个变量,但如果没有人订阅,我不希望它持续存在(因为如果我使用数组或大于 int 的东西,我不想将它们保存在内存中)。我当前的实现有效,除非重新订阅它仍然获得最后一个值,这意味着该值仍然存在。我正在考虑将 observable 设置为零,但我不知道在哪里做。谁能帮我完成这个?下面的代码显示它大部分都在工作,但看起来数据在没有人订阅的情况下仍然存在。