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

ios - 将“RxTableViewSectionedAnimatedDataSource”绑定到 UITableView 时生成错误

RxTableViewSectionedAnimatedDataSource使用UITableView时出现以下错误rx_itemsAnimatedWithDataSource()

这是错误的屏幕截图:

Xcode 错误

无法使用类型为“(RxTableViewSectionedAnimatedDataSource)”的参数列表调用“rx_itemsAnimatedWithDataSource”

需要类型为“(数据源)”的参数列表

self.dataSource是类型:

RxTableViewSectionedAnimatedDataSource< DateSelectorSectionModel>

这是生成的接口DateSelectorSectionModel,以及相关类型:

有任何想法吗?谢谢!

0 投票
3 回答
16172 浏览

swift - RxSwift:使用 Zip 和不同类型的 observables

我正在使用 RxSwift 2.0.0-beta

如何以类似 zip 的方式组合 2 个不同类型的 observable?

我目前的解决方法是将所有内容映射到组合类型的可选元组,然后将可选元组压缩成非可选元组。

但这显然很丑陋。更好的方法是什么?

0 投票
1 回答
15646 浏览

swift - RxSwift 以及如何制作简单的 TableViewController?

如何创建 RxSwift 风格的 TableViewController?

我正在尝试创建一个使用 RxSwift 并且没有任何部分的简单 TableViewController。

我已经广泛地查看并使用了https://github.com/ReactiveX/RxSwift/blob/master/RxExample/RxExample/Examples/TableView/TableViewController.swift

我将代码缩减到只有一个部分并且只使用用户。但是,似乎我坚持使用 SectionModel。

如果我能提供帮助,我什至不想使用 SectionModel。

所以也许另一种问法是“什么是 RxTableViewSectionedReloadDataSource 的非节版本?”

0 投票
2 回答
10522 浏览

ios - 结合 Alamofire 和 RxSwift

我有这个自定义实现Alamofire

我想将 MVVM 和 RxSwift 应用到我的项目中。但是,我找不到合适的方法来做到这一点。

我想要实现的是 aViewModel和 aViewController可以做这些事情:

任何帮助都深表感谢。谢谢你。

0 投票
1 回答
4270 浏览

swift - RxSwift MVVM 如何使用项目管理器设置视图模型?

假设我有以下SwiftRx (2.0.0-beta.4) MVVM情况:

我有 4 件事:

  • 项目列表视图控制器
  • 项目视图模型
  • 物品管理器
  • 物品

ItemsManager有一个名为items()的函数,它将以可观察的 RxSwift 方式返回 Items。

ItemsViewModel 现在只需要传递项目。稍后可能会为了 View Controller 的缘故在 Item 属性上应用显示逻辑(例如正确显示日期。)

ItemListViewController会将项目放在一个表中,每行一个项目。

一个项目有 4 个属性(如标识符、日期、...),它们将显示在表格行单元格中。

如何在 ItemsViewModel 和 ItemsManager 中进行设置,以便在管理器中添加、删除、更改项目时,它们会通过 ItemsViewModel?

通过阅读文档并查看Rx.playground,现在似乎要使用的是 RxSwift PublishSubject< Item >或者可能是以某种方式订阅了经理的 items()的 RxSwift映射

如何做好这件事?

ItemsManager 现在有这样的东西:

视图模型中有这个:

0 投票
1 回答
2346 浏览

ios - 使用 RxSwift 和 Moya 处理重新认证

我有一个项目,我将 Moya 与 RxSwift 扩展一起使用。简单的用例工作正常,我能够以 Observables 的形式发出请求并获得响应。

然后我可以订阅 observable 并毫无问题地打印响应。

但现在我需要处理身份验证逻辑。它的工作方式是我运行上面的请求,并添加了一个作为 HTTP 标头字段的令牌。Moya 允许我通过在 endpointClosure 中使用endpointByAddingHTTPHeaderFields来透明地做到这一点。到目前为止没有问题。

当请求失败并显示 HTTP 状态 401 时会出现问题,这意味着我需要通过调用另一个端点重新进行身份验证

这将返回另一个 Observable,我可以轻松地将其映射到 JSON 以获取新令牌。

然后我只需要再次调用test()

所以我的问题是......如何在上面的test()函数中添加这个身份验证逻辑,以便test()返回的 Observable已经保证在失败的情况下运行重新身份验证逻辑并成为结果第二个重新认证的请求。

总的来说,我对 RXSwift 和 RX 很陌生,所以我对我将用来执行此操作的运算符有点一无所知。

谢谢!

0 投票
1 回答
1081 浏览

ios - 使用 ReactiveX 管理多个上传(在 iOS 上使用 Swift 和 Alamofire)

我正在尝试使用 ReactiveX (RxSwift) 将多张照片上传到服务器,收集每个请求的响应,然后发出一个最终请求以完成提交。

reduce在我尝试所有响应之前,一切似乎都运行良好。决赛subscribeNext永远不会被调用。(也许我误解了如何flatMapreduce工作?)

具体来说,这就是我尝试执行此过程的方式。

  • 准备一个 observable 来对每张照片进行编码(self.imageMgr是 的一个实例PHCachingImageManager()

    /li>
  • 准备一个 observable 来上传每张编码后的照片(使用 Alamofire 和 RxAlamofire)

    /li>
  • 最后,把它们放在一起

    /li>

运行时(例如 2 张照片),输出如下:

subscribeNext永远不会被调用。由于关于 RxSwift 的文档仍然有点薄,我希望这里的人能告诉我我误解了什么。

0 投票
3 回答
19637 浏览

ios - RxSwift:返回一个带有错误的新可观察对象

我有一个返回 Bool Observable 的函数,这取决于它是否正常。

0 投票
4 回答
13098 浏览

swift - Swift 结构内存泄漏

我们正在尝试尽可能使用 Swift 结构。我们还使用了 RxSwift,它具有采用闭包的方法。当我们有一个结构体创建一个引用自身的闭包时,就会创建一个强引用循环

我怎么知道这个?如果我创建 100,000 个 DoesItLeak 对象并在每个对象上调用 someFoo(),我相信我有 100,000 个具有强引用周期的对象。换句话说,当我删除包含这些对象的DoesItLeak 数组时,这些对象会保留在内存中。如果我不调用 someFoo(),就没有问题。

变量是一个类。因此,我可以通过使用 xcode 的 Instruments' Allocations 并在Variable< String >中过滤来查看此内存问题

按变量过滤

在此处输入图像描述

如果我尝试使用如下所示的 [weak self],则会收到编译器错误:

编译器错误是“弱不能应用于非类类型”

在实际/非示例代码中,我们通过 self 访问方法和变量,这是一个内存问题。

如何在保持 DoesItLeak 结构的同时解决此内存问题?

谢谢你的帮助。

0 投票
1 回答
423 浏览

ios - UIPickerView 即使在重新查询后也不显示数据

假设我有一群狗private var dogs: Observable<[Dogs]>。每次生成一个新值时,都会调用我的块,在其中为我创建一个新的数据源和委托UIPickerView,然后在我调用的块中,pickerView.reloadAllComponents()但我的视图显示为一个空的pickerView,即使查询了数据源和委托。

示例代码:

调试数据源和委托我知道这些是被查询的,我在 UIViewController 中保留数据源和委托引用的原因是因为它们UIPickerView持有这些的弱引用。

这是我尝试过的最后一种策略,但仍然得到相同的结果。任何帮助,将不胜感激。谢谢。

更新:

DogPickerView 数据源:

DogPickerViewDelegate: