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

ios - RxSwift 中的 RxJava onErrorResumeNext 运算符的类比是什么?

如果在 RxSwift 中遇到错误,我需要发出一系列项目。在 JAVA 中,可以使用“onErrorResumeNext”操作符来完成。但我在 Swift 中找不到相同的运算符或其替代品。

0 投票
1 回答
551 浏览

ios - RxSwift 中 RACCommand 的等价物是什么?

我有一个视图和一个视图模型。视图包含一个按钮,每次用户按下它时,我都希望通知视图模型。我还希望在第一个视图模型收到事件时通知第二个视图模型。

因此,点击事件将按如下方式传播:

我可以通过绑定button.rx_tap来设计它viewModel1.onButtonTapped(),但是由于我想viewModel2订阅也获取事件,我需要某种可观察的来接收动作并传播它。我相信就是RACCommand这样。

我如何使用 RxSwift 实现它?

0 投票
1 回答
658 浏览

ios - 将对象发送给 RxSwift Action 的订阅者

我曾经在 Objective-C 中使用 ReactiveCocoa,但后来我改用 RxSwift,因为我发现它比 RAC4 更容易理解。但是,我曾经在 RAC 中做过一些有用的事情:

这允许我订阅命令的执行状态以及执行信号,以便我可以观察调用返回的数据。

我不确定如何使用 RxSwift Action 重现这一点。我只能订阅其执行的 observable:

但是我必须创建一个额外PublishSubject的来发送我的响应数据:

有没有办法在 RxSwift 中使用 Action 创建类似的模式?

0 投票
3 回答
10969 浏览

ios - RxSwift 过滤器变量数组

您好我正在尝试了解 RxSwift 库以编写更好的功能代码。

目前我陷入了一个非常基本的问题。可以说我得到了这个类型的变量Variable<[CiteModel?]>

现在我想从allCites包含特定文本的数组中过滤所有引用并将它们添加到shownCites.

这是我尝试过的,但它无法编译,因为我的过滤器块内部$0不是[CiteModel?] CiteModel?所期望的。你能向我解释我做错了什么吗?

执行上述代码时出错:

0 投票
1 回答
1080 浏览

swift - 使用 RxSwift 的通用转换方法问题

我有这个结果数据类型,它包含一个类型和一个进度

AnyObject需要转换成一个Mappable结构(ObjectMapper),所以因为我有几个这样的 Mappable 结构,所以我想实现这样的东西,一个我可以使用的通用映射:

上面的定义似乎是错误的,因为无法编译:Cannot explicitly specialize a generic function

我在这里做错了什么?

0 投票
1 回答
10709 浏览

swift - 在 RxSwift 中合并两个通知观察者

我有这段代码:

它应该监听任何一个指定的通知并在任何一个被触发时进行处理。

但是,这不会编译。我收到以下错误:

那我应该如何将这两个信号合并为一个呢?

0 投票
1 回答
3016 浏览

ios - 网络调用后绑定到 UIRefreshControl

我是 RxSwift 的新手,我想知道如何能够“被动地”使用 UIRefreshControl 和 UITableView 而不是创建目标的常规方式,并手动调用beginRefreshing()and endRefreshing()

例如,假设我正在从 API 加载一些字符串:

MyAPI发送对某些字符串值的请求,如何绑定refreshControl到调用getData()并在完成(或出错)网络请求时停止刷新?我需要绑定到refreshControl.rx_refreshing吗?

0 投票
1 回答
1831 浏览

ios - UICollectionViewController 的正确 MVVM 架构是什么

我正在使用 RXSwift 和 MVVM 为 iPad 制作应用程序。

我有一个带有 UICollectionView 和 ViewModel 的 UIViewController,它充当数据源和 collectionView 的委托。

收集单元格的部分功能是当点击按钮以显示弹出框时。现在使用 iOS 9 中更新的弹出框功能(可能更早),您需要在视图控制器中正常显示视图,并修改 popoverPresentationController。

现在,据我所知,您无法从 UICollectionViewCell 呈现 UIViewController。说得通。

但我认为这样做的唯一方法是拥有一个指向 ViewController 的委托。

查看类图(附加),viewModel 必须在单元格出列时设置委托。要做到这一点,ViewModel 必须知道要设置什么 ViewController 作为委托,我相当肯定这与 viewModel 的观点相悖。根据 MVVM(对于 iOS),视图模型不应该知道视图控制器。视图控制器可以知道视图模型。

所以我的问题是在 MVVM 之后执行此操作的最佳方法是什么?如果它需要将 dataSource/Delegate 移动到不同的类,我完全赞成。

UML 图

0 投票
1 回答
904 浏览

swift - RxSwift PublishSubject 在初始化时无意触发

我正在尝试使用 PublishSubject 转发按钮点击。然而,这个 PublishSubject 会在初始化时触发,这会干扰我的逻辑。这就是我正在做的事情:

(此初始化行将触发第一个 Next 事件)

然后在按钮点击动作上:

然后我像这样订阅它:

有没有办法在不触发初始化时发布的第一个“下一个”事件的情况下做到这一点?

干杯!

0 投票
1 回答
1819 浏览

ios - subscribeNext 和 bindNext 的区别

我正在使用 RxSwift,想知道 subscribeNext 和 bindNext 有什么区别?

感谢您的输入。