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

facebook - 使用 RxSwift 登录 Facebook

我正在尝试实现以下 RxSwift 示例:

在我的应用程序中使用 facebook 登录 -> 检索用户信息 -> 检索用户的个人资料照片。

我有这三个函数,它们必须按以下顺序执行:requestAccess() -> fetchUserInformation() -> fetchUserPhoto()

我已经尝试过实现这个流程,但感觉不对。解决此问题的最佳方法是什么?

0 投票
1 回答
4260 浏览

swift - 将 RxSwift 计时器和间隔 observable 组合成一个带有完成的 observable

我想创建一个行为类似这样的可观察对象。

似乎我应该能够以某种方式在这里结合一个可观察的计时器和一个可观察的间隔,但我似乎无法找出正确的策略来做到这一点。对 Rx 来说是新手,所以我对我做错的可能性持开放态度。¯\_(ツ)_/¯

0 投票
4 回答
4608 浏览

swift - 如何在 RxSwift 中翻译 if-else?

我正在尝试学习库RxSwift

我有一些这样的代码:

现在我需要在检查之前从服务器更新数据,所以我建模了一个返回 Observable 的 getData()。

我目前的做法是这样的:

它有效(或者应该,我还在写它),但感觉不对..有没有更“反应性”的方式来做到这一点?最适合使用的运算符是什么?

也许返回“false”错误并使用 catch 块?

更新

按照 ssrobbi 建议的方法,我将 2 个分支拆分为 2 个不同的 subscribeNext,并使用过滤器来选择正分支或负分支。这是产生的代码:

这种方法的优点是我可以在代码的其他部分中仅重用两个分支中的一个,而无需重写订阅主体(减少重复总是好的!)

更新

在 RxSwift slack 中进行了一些讨论后,我添加了 shareReplay(1),因此不再重复 getData()。

0 投票
1 回答
30178 浏览

swift - ReactiveCocoa vs RxSwift - 优点和缺点?

所以现在有了 swift,ReactiveCocoa的人已经在 3.0 版中为 swift 重写了它

此外,还有一个名为RxSwift的项目启动了。

我想知道人们是否可以添加有关这两个框架的设计/api/哲学差异的信息(请本着 SO 的精神,坚持真实的事情,而不是关于哪个“最好”的意见)

[StackOverflow 模组注意事项:这个问题确实有明确的答案,答案是两个框架之间的差异。我认为这对 SO 来说也很重要]

首先,我阅读他们的自述文件的最初印象是:

  • 作为熟悉微软“真正的”C# Rx 的人,RxSwift 看起来更容易识别。
  • ReactiveCococa 现在似乎已经进入了自己的领域,引入了新的抽象,例如 Signals vs SignalProducers 和 Lifting。一方面,这似乎澄清了某些情况(什么是热信号与冷信号),但另一方面,这似乎大大增加了框架的复杂性
0 投票
2 回答
9120 浏览

swift - RxSwift 的动作序列

我使用 RxSwift 来简化我的代码。对于我目前的项目,我想将 RxSwift 的原则应用于 LayerKit 中的一堆完成块:

我正在考虑这样的事情:

RxSwift 没有then()方法。有没有另一种方法来做这个链接的东西,或者我在一般如何使用 ReactiveX 上想错了?

0 投票
1 回答
1972 浏览

ios - 使用 UITableView 的 RxCocoa 扩展时如何控制 canEditRowAtIndexPath

在我提出问题之前,我正在使用 Swift 2 和 xcode 7 beta 进行记录。

所以我使用 RxSwift 和 RxCocoa 将我的 ViewModel 绑定到 TableView。在我的UITableViewController viewDidLoad我正在做这个绑定......

someCollectionOfViewModels只是一个包含在 a 中的视图模型数组Variable<>,因此Variable<[SomeViewModel]>.cell.tripViewModel是 type SomeViewModel

这些都与问题无关,一切都很好,当我的视图模型更新时,我的表也会更新。问题是我希望我的表格单元格是不可编辑的UITableViewDataSource,并且 RxCocoa 为上述绑定设置的并没有实现canEditRowAtIndexPath此协议上的可选方法,它默认为 true 使单元格可编辑。我知道我可以实现自己的RxTableViewDataSourceType,这相当简单,但是很多代码只是为了让这件小事工作。我对 RxSwift 和 iOS 都很陌生,我错过了一些简单的东西吗?上面的闭包中有没有办法让我可以访问UITableCellView在单元格本身上设置一些属性以使其不可编辑?我缺少的 RxCocoa 扩展中的一些东西怎么样。如果必须的话,我会去写我自己的RxTableViewDataSource,但我想我会先在这里问。

谢谢,

-账单

0 投票
3 回答
4315 浏览

ios - 未调用 RxSwift 订阅块

我正在玩 RxSwift,我被一个简单的玩具程序困住了。我的程序本质上包含一个模型类和一个视图控制器。该模型包含一个在异步网络调用后在主队列上更新的可观察对象,视图控制器在 viewDidLoad() 中订阅。AppDelegate 初始化模型并将其传递给 ViewController 并触发网络请求。

标签只更新一个,它显示“0”。我预计标签会更新两次,第一次更新后显示“0”,处理网络请求后第二次更新后显示“12”。dispatch_async 块中的断点被命中,但似乎 galleryCount 失去了它的观察者。有人知道发生了什么或如何调试吗?

最好的

0 投票
1 回答
612 浏览

ios - rx_itemsWithCellFactory 调用语法

在 RxSwift 示例中,这是有效的:

如何使用 rx_itemsWithCellFactory 编写它?

0 投票
3 回答
13572 浏览

swift2 - How to handle "Done" return key press event in rxSwift?

While exploring RxSwift

I found just textField.rx_text.asObservable() property, that fires event every keyboard button is hit.

But how do we handle "search" or "done" button press events? I'd like to fire search only after these actions, not "search as you type".

0 投票
3 回答
982 浏览

swift - 结合两个 Observables

我仍然是一个被动的新手,我正在寻求帮助。

以上是我想我想要的......初始函数doA()doB()包装网络调用,因此它们都会发出一个信号,然后Complete(或Error不发出任何Next事件)。如果doA()完成但doB()出错,我想doIt()发出.BFailed然后完成。

感觉就像我应该使用zip或者combineLatest但我不确定如果我这样做了如何知道哪个序列失败了。我也很确定这catchError是解决方案的一部分,但我不确定该放在哪里。

--

正如我正在考虑的那样,我可以接受依次发生的呼叫。那可能会更好...

IE:

谢谢你的帮助。