草庐IT

ios - 带有 RxSwift 的 collectionView 不显示任何项目

我正在尝试创建一个collectionView并使用RxSwift将数据填充到其中。然而,即使它似乎返回datasource.configureCell中的对象,它也没有显示任何单元格。我怀疑我在viewDidLoad中的设置有问题?设置collectionView//Createawaterfalllayoutletlayout=CHTCollectionViewWaterfallLayout()//AddCollectionViewself.collectionView=UICollectionView(frame:CGRect(x:0,y:0,width:self.view.fr

ios - 如何使用 RxSwift 将数据添加到 tableview 或 collectionview

我可以看到我可以使用Subject如Publish或Variable将新元素添加到TableView或CollectionView,这将显示正确地在最后但如果需要在TableView的开头添加新数据怎么办。那怎么办??如何将数据添加到可观察序列中,以便新数据显示在TableView或CollectionView的顶部??? 最佳答案 您可以使用combineLatest运算符。最初,newData是一个空数组,当你向它添加数据时,它会显示在tableView的顶部letdata=["ANewHope","TheEmpireStrik

ios - 使用 RxSwift 同步异步网络调用

我正在使用Facebook对用户进行身份验证。这个过程是异步发生的。完成后,我必须通过firebase对用户进行身份验证,这是异步发生的。即使我使用的是RxSwift,我最终还是嵌套了异步任务,就像我要使用回调一样,最终陷入回调hell。我目前的程序似乎不对。也有点难读。是我还是有更优雅的方法来处理多个异步网络调用。对于这个例子,我去掉了错误事件,因为它使代码的可读性更差。感谢任何提示或指导。funcrx_login(viewController:UIViewController){///Facebookloginrx_facebookLogin(viewController:view

swift - RxSwift : Single<T>, Single<T?> 或 Maybe<T>?

我知道这有点品味,但是:RESTAPI请求,例如GET/entity/{id}可以产生一个实体或404。在这种情况下,什么是最好的RxSwifttrait使用?ASingle发出error-如果找不到实体则事件ASingle发出.next(nil)-如果找不到实体则事件AMaybe不发出任何元素,如果找不到实体就完成什么是最佳实践? 最佳答案 API设计始终是个人喜好问题,但恕我直言,我会使用常规Single.如果您发现自己使用Single,您可能打算使用Maybe:)我要么做Single-并使用materialize()处理错误或

swift - 使用 RxSwift 构建 View 模型

我的View模型存在根本性缺陷,因为那些使用驱动程序的View模型将在返回错误时完成,并且无法自动重新订阅。一个例子是我的PickerViewModel,它的接口(interface)是://MARK:PickerViewModelling/**Configuresapickerview.*/publicprotocolPickerViewModelling{///Thetitlesoftheitemstobedisplayedinthepickerview.vartitles:Driver{get}///Thecurrentlyselecteditem.varselectedItem

swift - 如何在忽略 RxSwift 中的值的同时观察 .next 事件的多个变量

我有一个具有Variable属性number和text的类,我想观察对这两个变量所做的任何更改。不需要这些属性的值。在我的真实案例中,我有超过10个Variables需要观察,所以也许应该可以将它们传递给.asObservable()的数组。letnumber:Variablelettext:VariablefuncdoSomethingWhenAnyValueWasChanged(){//somecode}我该如何实现?我尝试以多种方式使用Observable.combineLatest()来做到这一点,但对我来说没有成功。也许我错过了什么? 最佳答案

swift - UITextview 上的 RxSwift

我想在我的TextView中每4次更改调用一个函数。我如何使用RXswift去抖throttle来执行它?我使用UITextViewDelegate来检测我的TextView中的更改。 最佳答案 我使用rx.net,实现它的一种方法是使用buffer看完RxSwift对buffer的实现funcbuffer(timeSpan:count:scheduler:)你有两个参数:timeSpan作为超时时间count指定缓冲区的最大元素每次超时或达到最大计数时都会返回窗口。因此,在您的情况下,只需将超时设置为10年左右,并将计数设置为4。

ios - RxSwift RetryWhen 导致重入异常

我一直在尝试在RxSwift上测试retryWhen运算符,但遇到了ReentrancyAnomaly问题,这是代码:Observable.create{observerinobserver.onNext(1)observer.onNext(2)observer.onNext(3)observer.onNext(4)observer.onError(RequestError.dataError)returnDisposables.create()}.retryWhen{errorinreturnerror.enumerated().flatMap{(index,error)->Obse

swift - 带有 resultSelector 的 RxSwift withLatestFrom 无法编译

我有一个Driver类型Bool和一个BehaviorRelay类型Page(这是一个自定义枚举)。enumPage{caseoption1(CustomClass1,CustomClass2)caseoption2(CustomClass3)caseoption3(CustomClass4)varproperty1:CustomClass2?{switchself{case.option1(_,letcustom):returncustomcase.option2,.option3:returnnil}}}我有Driver在另一个ViewModel中。classViewModel1{

swift - RxSwift URLSession 请求已处理

我正在学习使用RxSwift,但我一直在使用这个简单的代码。我的意图是采用APIRequest类型,就这么简单:publicprotocolAPIRequest:Encodable{associatedtypeResponse:Decodablevarpath:String{get}}将其传递给API客户端并最终返回类型为T.Response的Observable,但是,我经常在控制台中看到cancelled状态:2019-07-0110:46:04.847:testapirequest->subscribed2019-07-0110:46:04.855:testapirequest-