问题标签 [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 投票
3 回答
7751 浏览

ios - 我应该如何使用 RxSwift 更新 UITableViewCell?

我在演示中学习了创建 UITableView 和渲染单元格的示例

在我看来,items是 viewModel,我想通过使用 Alamofire 或其他库跨网络请求一些数据。当我收到回复时,如何更新单元格的相关文本?

换句话说,我想将 viewModel 绑定到 Cells。当模型的数据发生变化时,单元格的内容会自动发生变化。

我的一个想法是:为单元格的内容创建一个 Observable 序列(绑定到单元格)。当服务器响应数据时,它调用函数tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)。但这似乎不是一个优雅或好的方法。

所以,希望有人能帮助我:)

0 投票
1 回答
1299 浏览

ios - RXSwift 如何为具有返回值的委托方法创建包装器

我在 RXSwift 中有一个代表的包装器

他们看起来像

但我有返回值的委托

我如何为这个委托实现包装器?

0 投票
0 回答
128 浏览

swift - Swift 异步 API 请求 - NSURLSession 还是 ReactiveExtensions?

当我将一些与 Web 服务调用相关的旧功能从同步调用迁移到异步时 - 我对以下内容感到好奇。

最好的技术选择是什么?

我正在考虑 NSURLSession 和 Reactive Extensions。

一般来说,我更喜欢使用 NSURLSession 主要是因为在维护方面的框架支持。相反,到目前为止,我在其他一些用 Scala 编写的系统中使用了 Reactive Extensions,并且已经证明它非常适合处理 API 请求——尽管我不得不说这些概念一开始就更难理解,然后只是检查Apple 在 NSURLSession 上的文档。

你对这类事情有什么经验?你会推荐什么,最重要的是,为什么?

0 投票
2 回答
21765 浏览

arrays - 如何从一个可观察的数组创建一个可观察的数组?

我有一个Thing对象数组,我想ConvertedThing使用返回的异步函数将其转换为对象Observable<ConvertedThing>

我想创建一个Observable<[ConvertedThing]>在所有转换完成后发出一个值的。

如何实现?非常感谢任何帮助!

0 投票
0 回答
277 浏览

system.reactive - 终止所有可观察对象并等待它们完成

我想编写一个函数,以一种我可以终止它的方式包装一个 observable,并在它完成后执行一些代码。我想过这样做:

我可以在没有var terminating: Bool实例变量的情况下做到这一点吗?(即更实用..)

0 投票
1 回答
5344 浏览

ios - 第一个 RxSwift 示例因“无法使用参数列表调用 'combineLatest' ...”而失败

试图围绕 RxSwift 进行思考,但他们提供的第一个示例无法构建。

我正在尝试从https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Examples.md运行 RxSwift 代码

但它失败并出现错误:

Cannot invoke 'combineLatest' with an argument list of type '(Variable<Int>, Variable<Int>, (_, _) throws -> _)'

这是示例代码中的错误还是我遗漏了什么?


我复制的步骤:

  1. 创建一个新的 iOS Single View Application,保存,关闭它。

  2. 在项目根目录中创建一个 Podfile,其中包含:

  1. pod install

  2. 打开 xcworkspace 文件

  3. 将示例代码放入 ViewController 的 viewDidLoad 函数中:

  1. 建造。Xcode 可能会抱怨它无法加载 RxSwift。重新启动 Xcode -> 问题已解决。

  2. 建造。Xcode 可能会抱怨有关 bitcode 的问题。在项目设置中到处禁用位码 -> 问题已解决。

  3. 建造。Xcode 抱怨 combineLatest:Cannot invoke 'combineLatest' ...


Xcode 版本:7.2

吊舱版本:0.39.0

RxSwift 版本:2.1.0


编辑:似乎其他示例也因各种错误而失败,例如:

不能在没有参数的情况下调用“concat”

这可能意味着我的项目配置中缺少某些内容,或者 RxSwift 发生了巨大变化,没有人有时间更新初学者示例以匹配更改。无论哪种方式,在使用 RxSwift 的第一个小时里,这些都是非常令人沮丧的。

0 投票
1 回答
2690 浏览

swift - RxSwift:仅在满足要求时才压缩 Observables

想象一个允许编辑姓名姓氏年龄头像图像等字段的用户配置文件。当用户单击Save时,会针对已更改的每个值发送请求。

现在请考虑具有以下签名的函数:

通常我们只会zip像这样的请求:

当我只想对已更改的值执行请求时,我应该怎么做?

0 投票
1 回答
5013 浏览

swift - RxSwift 重复动作

我正在从 RAC 切换并希望有一个重复的网络请求,根据请求的 API 返回不同的结果类型。

我想使用一个区间,但我不知道如何匹配返回类型。

我需要调用 Int 类型的 Observerable.interval - 但返回 Observable。我该怎么做?

0 投票
2 回答
1867 浏览

swift - 如何让 RxSwift 中的主题将值推送到自身而不创建无限循环

我有一个 UITableView,如果满足某些条件,我想将其置于编辑状态。切换编辑的主要方法是通过编辑按钮。

所以我拥有的视图元素是

以及 tableView 是否应该处于编辑模式来自:

它将使用以下方式连接到 tableView:

当点击编辑按钮时,我希望将新值推送到editing,即对发送到的最新值的否定editing。最近的值可能是通过点击设置的editButton,或者它可能来自其他地方。

我不明白如何将按钮按下的流与流结合起来,以editing允许这种方式没有无限循环,例如

我知道 tableView 有一个editing属性,但我不想依赖它,因为我正在寻找可以在其他地方重复使用的更通用的解决方案。我也不希望在实例 var 中跟踪 isEditing 的值,甚至不作为变量(),因为我正在寻找一个无状态的、基于流的解决方案(如果这是可能的话)。

谢谢!

0 投票
1 回答
3756 浏览

swift - RxSwift:链接几个动作

假设我们有一个 AnObject 实例数组,并且需要执行以下操作序列:

  • 通过单独的调用将对象发送到后端
  • 步骤 1 完成后将此数组批量存储到 DB
  • 第 2 步完成后,对每个项目进行额外处理

并且我们希望仅在执行所有这些步骤(或出现错误)之后接收信号。通过RxSwift实现这一目标的正确方法是什么,实际上是否可能?

请在下面找到我的原型函数。不幸的是,我没有想出一个有效的链接代码示例,所以没有什么可以演示的。