版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
n响应式编程(ReactiveProgramming,简称RPp也是一种编程范式,于1997年提出,可以简化异步编程,提供更优雅的数据绑定p一般与函数式融合在一起,所以也会叫做:函数响应式编程(FunctionalReactiveProgramming,简称FRP)n比较著名的、 响应式框架pReactiveCocoaü简称RAC,有Objective-C、Swift版本ü官网: pReactiveü简称Rx,有众多编程语言的版本,比如RxJava、RxKotlin、RxJS、RxCpp、RxPHP、RxGo、RxSwift等等ü官网:nRxSwift(ReactiveXforSwift)ReactiveX的Swift版本p源码:p中文文档:nRxSwift 上已经有详细的安 ,这里只演Ccds方式的安装target'target_name'dopod'RxSwift','~>5'pod'RxCocoa','~>5'
②ppodrepoppod
③importimportRxSwiftimportnpRxSwift:Rx标准API的Swift实现,不包括任何iOSpRxCocoa:基于RxSwift,给iOSUI控件扩展了很多Rx nObservable:负责发 nObserver:负责订阅
序列(Event
publicenumEventpublicenumEvent<Element>///Nextelementisproduced.casenext(Element)///Sequenceterminatedwithanerror.caseerror(Swift.Error)///Sequencecompletedsuccessfully.casecompleted}pnext:perror:携带错误信息,表明Observablepcompleted:表明Observablevarobservable=varobservable=Observable<Int>.create{observerinreturnDisposables.create()}//observable=Observable.of(1,2,observable=Observable.from([1,2,observable.subscribeobservable.subscribe(onNext:{print("next",$0)},onError:print("error", pleted:{},onDisposed:{varobservable=varobservable=Observable<Int>.create{observerinreturnDisposables.create()}//observable=Observable.just(1)observable=Observable.of(1)observable=Observable.from([1])observable.subscribe{eventinletletobservable=period:scheduler:observable.map"数值是\($0.bind(to:.disposed(by:letobserver=AnyObserver<Int>.init{eventinswitchevent{case.next(letdata):letobserver=AnyObserver<Int>.init{eventinswitchevent{case.next(letdata):print(data)casepleted:print("completed")case.error(leterror):print("error",error)}})letbinder=Binder<String>(label){label,textinlabel.text=text}Observable.just(1).map{"数值是\($0)"}.subscribe(binder).dispose()Observable.just(1).map{"数值是\($0)"}.bind(to:binder).dispose()extensionextensionReactivewhereBase:UIView{varhidden:Binder<Bool>{Binder<Bool>(base){view,valueinview.isHidden=value}}}letobservable=scheduler:MainScheduler.instance)observable.map{$0%2==0}.bind(to:button.rx.hidden).disposed(by:bag)n在开发中经常要对各种状态进 ppppBlockletletdata=(name:"Jack",age:(name:"Rose",age:data.bind(to:tableView.rx.items(cellIdentifier:"cell")){,cellcell.textLabel?.text= cell.detailTextLabel?.text="\( }.disposed(by: .subscribe(onNext:{ }).disposed(by: buttonbutton.rx.tap.subscribe(onNext}).disposed(by: classDog:NSObject@objcdynamicvarname:}dog.rx.observe(String.self,.subscribe(onNext:{nameinprint("nameis",name??"nil")}).disposed(by:bag)="larry"="wangwang".subscribe(onNext:{notificationin ",}).disposed(by:Observable.justObservable.just(0.8).bind(to:slider.rx.value.map{}.bind(to:textField.rx.text).disposed(by:.subscribe(onNext:{textinprint("textis",text??"nil")}).disposed(by:p它们是RxCocoa.ControlProperty n在不需要再接 //立即取消订阅 订阅observable.subscribe{eventin/当bag销毁(deinit)时,会自动调用Disposable实例的dispo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 聚脲防腐施工方案
- 连锁餐饮审计方案
- 2025年仪用电源项目可行性分析报告
- 2025年教育机构租赁合同范本5篇
- 2025-2030年(全新版)中国隔声屏障行业发展动态及前景趋势分析报告
- 2025-2030年中国高压清洗机行业运行态势及投资前景规划研究报告
- 2025-2030年中国非血管支架行业市场前景规划及投资决策建议研究报告
- 2025年度食堂冷链物流承包服务合同范本3篇
- 2025-2030年中国链条市场运行状况及投资战略决策报告
- 2025-2030年中国铝电解电容器行业发展动态及前景趋势分析报告
- 2024年安徽省合肥市瑶海区中考语文一模试卷
- 单位车辆变更名称的委托书
- 粉尘外协单位清理协议书
- 2023年12月首都医科大学附属北京中医医院面向应届生招考聘用笔试近6年高频考题难、易错点荟萃答案带详解附后
- 茶室经营方案
- 军队文职岗位述职报告
- 小学数学六年级解方程练习300题及答案
- 电抗器噪声控制与减振技术
- 中医健康宣教手册
- 2024年江苏扬州市高邮市国有企业招聘笔试参考题库附带答案详解
- 消费医疗行业报告
评论
0/150
提交评论