草庐IT

Rxswift3

全部标签

ios - 使用 RxSwift 重新加载 Tableview

我将RxSwift用于tableview。每次从api获取数据后,我都需要重新加载我的表,但我没有这样做。我找不到任何解决方案。有人可以帮忙吗?我有一个从Api的响应中获取的位置数组。我在View中使用了这段代码确实加载了,但是当数组更新时它没有被调用。 最佳答案 我发现了问题。我的阵列没有得到正确更新。我做了以下更改。声明模型类的dataSource变量:letdataSource=Variable([])现在它是空的,将它与TableView绑定(bind):dataSource.asObservable().bindTo(Re

ios - 使用 RxSwift 刷新后绑定(bind)到 UIRefreshControl

我有一个TableView的通知。我想使用UIRefreshControl通过下拉刷新来刷新。如何使用rx-swift做到这一点?这是我的代码。为什么给变量数据赋值后tableView不刷新varrefreshControl=UIRefreshControl()vardisposeBag=DisposeBag()letloadingData=ActivityIndicator()vardata:Observable!overridefuncviewDidLoad(){super.viewDidLoad()self.view=vv.tableView.registerClass(Noti

swift - RxSwift 为什么我们在不调用 dispose 的情况下会发生内存泄漏

我正在阅读有关RxSwift的文章,并且有很多关于内存泄漏的讨论。这里引用了主要RxSwift的入门指南repo:Ifasequencedoesnotterminateonitsown,suchaswithaseriesofbuttontaps,resourceswillbeallocatedpermanentlyunlessdisposeiscalledmanually,automaticallyinsideofadisposeBag,withthetakeUntiloperator,orinsomeotherway.这是ReactiveProgrammingwithSwift的第2

ios - 为 stub 创建 RxSwift/Reactive 扩展的子类

假设我有一个带有harvest函数的Field类:classField{funcharvest(handler:(Vegetable)->Void){…handler(carrot)…handler(potato)…handler(carrot)…}}我还有一个用于相同功能的Reactive版本/API:importRxSwiftextensionReactivewhereBase:Field{funcharvest()->Observable{returnObservable.create{observerinself.base.harvest(handler:observer.on

swift - RxSwift + UITableViewCell 如何获取 heightForRowAt 中的单元格对象

我有一个带有UITableView的ViewController。使用RxSwift填充表数据:letobservable=Observable.just(data)observable.bindTo(tableView.rx.items(cellIdentifier:"CategoryCell",cellType:CategoryCell.self)){(row,element,cell)incell.setCategory(category:element)}.disposed(by:disposeBag)tableView.rx.setDelegate(self).dispose

ios - RxSwift 无法识别订阅方法

我正在为我的iOS应用程序使用RxSwift。我有一个函数返回名为Repository的项目的Observable。funcsearch(query:String)->Observable基本上,它向github发出网络请求,以下载给定搜索查询的存储库。现在,当我调用此函数时,我按照RxSwiftdocumentation中的示例进行操作:search(queryText).subscribeNext({repoinprint(repo)})但是Xcode说Cannotinvoke'subscribeNext'withanargumentlistoftype'((Repository)

ios - RxSwift + 用户默认值

我是RxSwift的新手,在我的例子中,我想将UserDefaults与RxSwift一起使用来简化我的代码,所以我做了以下代码我的问题是,当我点击一个单元格时,订阅方法提交了两次?那我该怎么做才能解决呢?非常感谢!importUIKitimportRxSwiftimportRxCocoaimportRxDataSourcesclassViewController:UIViewController{letdisposeBag=DisposeBag()@IBOutletweakvartableView:UITableView!{didSet{tableView.register(UITa

ios - RxSwift 和 UICollectionView header

我将RxSwift与包含UICollectionView的UIViewController一起使用。我试图将header添加到我的CollectionView中,但这从未被调用过:funccollectionView(collectionView:UICollectionView,viewForSupplementaryElementOfKindkind:String,atIndexPathindexPath:NSIndexPath) 最佳答案 经过很长时间的摸索,我有了一个完整的答案。关键部分取决于RxDataSourcesdat

swift - 如何在 RxSwift 中顺序循环一个可观察对象?

我正在尝试创建一个轮询网络服务的流。目前它查询服务,然后在短暂的延迟后完成。我希望继续流重新启动而不是完成,从而永远轮询服务。你可以做一些像...myPollingStream.repeat()但是RxSwift中的repeat实际上是repeatElement并且因此实际上生成了一个observable流。你可以将它们concatMap成一个扁平的序列,但RxSwift没有concatMap运算符。那么我如何在RxSwift中循环一个observable?我希望请求是顺序的,而不是并发的,所以flatMap不是一个选项,因为它合并了导致重叠请求的流。我正在寻找类似于retry()工作

ios - 如何映射 RxSwift Observable 和 Result

我有一个简短的问题:我有一个返回Observable>的网络请求,我们称它为requestToken如果此请求成功,我想使用String(token)执行另一个返回Observable>的请求,我们称它为requestData当第二个请求返回时,我想将token合并到它的字典中最后我想从Observable>映射至Observable>如果我的代码中没有多个嵌套级别,我如何才能实现这一点?这就是我今天拥有的:requestToken().flatMap({result->Observable>inswitchresult{case.success(lettoken):returnreq