rx-swift 相关问题

RxSwift的目的是简化异步操作和事件/数据流的组合。仅将此标记用于特定于RxSwift - Reactive Programming范例的问题,或者需要使用该语言代码的问题。使用相关标签[ios],[osx],[apple-watch],[cocoa-touch]和[cocoa]来获取有关平台或框架的(语言无关)问题。

RxSwift 将 withLatestFrom 运算符与多个源一起使用

我有 3 个可观察量,即 source、source1 和 source2。我想要的是每当 source 发出不同的事件时获取 source1 和 source2 的值。这是我想出的代码,显然它......

回答 4 投票 0

无法在没有类型注释的情况下推断闭包类型。 Swift 5、XCode 15.0、RxSwift

我的第一篇文章,所以我为缺乏冗长或知识而道歉。我对斯威夫特很陌生。 我正在使用 RxSwift 来帮助同时运行对后端的 HTTP 调用,然后将其压缩到单个观察器中......

回答 1 投票 0

无法调用非函数类型“[Observable<Event>.Type]”的值

Xcode 15 Mac 书 M1 Moya/RxSwift (15.0.0): 莫亚/核心 RxSwift (~> 6.0) 无法调用非函数类型“[Observable.Type]”的值 私有函数绑定Strongify(_ ...

回答 1 投票 0

如何更改 RxSwift 中 BottomPopUp 的高度

我在我的项目中使用RxSwift 当我在Viewmodel中调用API并传输到ViewController后,我获取了数据的数量。然后我想用数据的数量来改变Popup的高度。怎么可以...

回答 1 投票 0

如何在combine框架中实现rxswift的methodInvoked函数

我目前正在使用rxswift,但正在研究combine框架。 我在 rxswift 中经常使用 methodInvoked 函数。 是否可以在组合中创建类似 methodInvoked 方法的功能

回答 1 投票 0

无法分配给属性:'self'是不可变的错误

私有函数绑定(){ selectedPhotos.asObservable() .map { $0.isEmpty } .bind(到:completeButton.rx.isHidden) .dispose(作者:disposeBag) } “可以吗……

回答 1 投票 0

更新第一个可见单元格的内容时,CollectionView 中的最后一个可见单元格消失

我使用 RxDataSources 时有一个奇怪的行为。我正在使用 RxCollectionViewSectionedAnimatedDataSource。我在集合视图中的每个单元格内都有一个按钮,它显示了一些内容。这个骗局...

回答 1 投票 0

如何在事件列表中按时间顺序排序?

此代码使用 RxSwift 导入 RxSwift 结构输入{ 让 loadTrigger: Observable } 协议用例{ func getEventsLists() -> Observable<[EventsList]> 功能

回答 1 投票 0

Rxswift:处理订阅不是处理

我是 Rxswift 的新手,我遇到了一个问题 我有一个 Observable,我在 viewDidLoad 中进行绑定\订阅,屏幕被重复使用,所以每次 viewDidloa 都会发生订阅...

回答 1 投票 0

RxCocoa/RxSwift 在访问 TableViewDataSourceNotSet tableView(_:cellForRowAt:) 时崩溃

我正在使用 RxCocoa 和 RxSwift 根据 BehaviorRelay 提供的数组呈现 UITableView。绑定数据的代码如下: // 我的视图模型: var itemList = BehaviorRelay(值: [MyItem](...

回答 2 投票 0

使用 RxDatasources 作为数据源时如何填充自定义页眉/页脚视图

我正在使用 RxDatasources 创建我的数据源。稍后,我在我的视图控制器中配置单元格。问题是,因为页眉/页脚与数据源无关(除了我们可以设置标题,但是......

回答 2 投票 0

RxSwift)使用 flatMap 订阅可完成事件的问题

func someCompletable() -> Completable { 返回 Completable.create { 观察者 观察员(.完成) 返回 Disposables.create() } } 让 buttonDidTap = PublishRelay func someCompletable() -> Completable { return Completable.create { observer in observer(.completed) return Disposables.create() } } let buttonDidTap = PublishRelay<Void>() buttonDidTap .debug() .subscribe() .disposed(by: disposeBag) 我看到在点击 buttonDidTap 时触发了 next() 事件。 但是,当我通过 flatMap 将其转换为 Completable 类型时,flatMap 之后没有发出任何事件。 buttonDidTap .flatMap { self.someCompletable() } .debug() .subscribe() .disposed(by: disposeBag) 我也试过订阅所有事件 onNext、onCompletable、onError 和 onDisposed,但它们都没有发出。 知道这是为什么吗? 这是一个 gif 运行屏幕 :https://user-images.githubusercontent.com/57667738/229386647-c061d185-2015-40af-9150-5daac58c47ec.gif buttonDidTap .debug() //onNext event fired .flatMap { self.someCompletable() } .debug() //no event fired .subscribe() .disposed(by: disposeBag) 我的猜测是flatMap在将Completable转换为Observable的过程中失去了Completable的特性,还原为Observable的形式。 因此,对 onCompleted 的调用似乎消失了。 我该如何解决这个问题? flatMap 在它跟随的每个可观察对象完成之前无法完成。否则它将无法响应任何更多事件。例如,下次点击按钮时。 所以当 completable 发出一个 completed 事件时,flatMap 应该做什么? 它不能发出下一个事件,因为可完成的没有发出下一个事件。 它不能发出错误事件,因为没有错误。如果可完成的 did 发出错误,那么它可以。 它无法发出已完成的事件,因为它仍在监视按钮点击以获取更多下一个事件。 出于这个原因,您看不到任何事件从 flatMap 中发出(直到链上游进一步发出错误或所有可完成的订阅和可观察到的按钮点击已完成。) 如果您想知道可完成事件何时真正完成,您需要将已完成的事件转换为下一个事件。例如: buttonDidTap .flatMap { someCompletable.andThen(Observable.just(())) } 这样,每次 .next(()) 完成时,从 flatMap 返回的 observable 都会发出一个 someCompletable 事件。 另外 您发布的代码: buttonDidTap .debug() //onNext event fired .flatMap { self.someCompletable() } .debug() //no event fired .subscribe() .disposed(by: disposeBag) 可能有一个保留周期。由于传递给 flatMap 的闭包保留了 self 并且 disposeBag 由 self 保留。这意味着self切向保留自己。 要删除循环,请在闭包外部创建 Completable: let completable = someCompletable() buttonDidTap .debug() //onNext event fired .flatMap { completable } .debug() //no event fired .subscribe() .disposed(by: disposeBag) 之所以可行,是因为每次订阅 Completable 时,它都会调用您传递给其构造函数的闭包。

回答 1 投票 0

如何人工完成一个流?

我有一个整数流,我需要使用一个结构来处理,该结构使用 CurrentValueSubject 来知道是否允许它进行处理。由于 CurrentValueSubject 不...

回答 0 投票 0

为 RxPickerViewAttributedStringAdapter 创建一个完成按钮

self.genderSource = RxPickerViewAttributedStringAdapter<[[DKProfileOption]]>.init(components:[]) { dataSource, pickerView, components in 返回 1 } numberOfRowsInComponent: { [弱自我] 数据...

回答 1 投票 0

如何在 RxSwift 中将 Observable<Type> 转换为 Single<Type>?

我目前有一个返回 observable 的方法。但是,它只返回一个元素。 func getMyResponse(queryID: String) -> Observable { 返回可观察 } 我是

回答 0 投票 0

RxSwift Alamofire Session - 错误 - 表达式类型不明确,没有更多上下文

我尝试创建一个可观察的请求。但我错过了一些东西。我不明白缺少什么? 我和这个文档、这个、这个等做了同样的事情。 func performRequest(路线:

回答 0 投票 0

在“PrimitiveSequence”上引用实例方法“xxx”需要类型“A”和“any B”等效

我们需要一些建议。我正在尝试做这样的抽象,所以我有很多不同的响应。在项目的某个时候,我们意识到我们的一些 Responses 具有 id 属性,我们想制作 s...

回答 1 投票 0

RxSwift 调用数组元素的函数

我有一系列设备,我想尝试连接到其中一个设备,如果成功停止尝试连接到其他设备并返回 onCompleted,如果连接失败...

回答 1 投票 0

RXSwift - RxCollectionViewSectionedReloadDataSource - 拖放移动(重新排序)

我已经使用 RxCollectionViewSectionedReloadDataSource 将我的数据加载到 UICollectionView 中。 让 dataSource = RxCollectionViewSectionedReloadDataSource>(...

回答 2 投票 0

在 RxSwift 中使用 Observable zip 时如何处理多个 API 调用的成功案例和失败案例

我使用 Obeservable.zip() 调用了两个独立的 API 调用。在这种情况下,如果第一个 API 失败(返回某种错误),第二个 API 永远不会在 subscribe(onNext) 闭包内执行,甚至...

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.