博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cell reuse & disposebag
阅读量:6471 次
发布时间:2019-06-23

本文共 1140 字,大约阅读时间需要 3 分钟。

For my project I've made base cell

class TableViewCell: UITableViewCell {   private(set) var disposeBag = DisposeBag()   override func prepareForReuse() { super.prepareForReuse() disposeBag = DisposeBag() // because life cicle of every cell ends on prepare for reuse } }

and now in your cell factory you should do:

let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! DiaryItemCell cell.commentButton.rx_tap .subscribeNext{ showAlert("Hi") }.addDisposableTo(cell.disposeBag) return cell

All disposables (CompositeDisposable, SerialDisposable, AnonymousDisposable ...) have the same behavior.

  • once they are disposed, adding another disposable with addDisposable will call disposeimmediately (@sergdot that's why self.compositeDisposable.dispose() was causing that weird behavior ;)
  • they don't call dispose automatically on deinit

All classes named *Disposable are meant to be used while implementing your own Rx operators.

DisposeBag is meant to return ARC like memory management to subscriptions, and it will dispose all subscriptions (Disposables) it contains on deinit.

Hope this clears things up :)

 
@kzaher

 

 

转载地址:http://urpko.baihongyu.com/

你可能感兴趣的文章
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q70-Q72)
查看>>
最全最新个税计算公式---今天你税了吗?
查看>>
linux shell 正则表达式(BREs,EREs,PREs)差异比较(转,当作资料查)
查看>>
MongoDB--CSharp Driver Quickstart .
查看>>
#pragma mark 添加分割线 及 其它类似标记 - 转
查看>>
遗传算法实现自动组卷、随机抽题 (转)
查看>>
二分法求平方根(Python实现)
查看>>
使用startActivityForResult方法(转)
查看>>
so在genymotation中错误问题
查看>>
Visual Studio 原生开发的10个调试技巧(二)
查看>>
U3D版本《暗黑世界V1.0》编译——图文教程!
查看>>
系统广播 android.intent.action.KILL_BACKGROUND_SERVICE
查看>>
C语言获取系统当前时间转化成时间字符串
查看>>
安卓第七天笔记--网络编程一
查看>>
zendstudio中加入对tpl文件的支持,用HTML Editor编辑器编辑
查看>>
快乐的JS正则表达式(二)
查看>>
xml-apis-ext.jar
查看>>
ArcGIS教程:编辑特征
查看>>
使用logrotate管理nginx日志文件
查看>>
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方式
查看>>