我的 TableViewCell 注册通知。但是我不能取消注册,因为我不知道什么时候。我试图继承 NSNotificationCenter 但我没有以正确的方式尝试它。
一些想法如何解决这个问题?
我的 TableViewCell 注册通知。但是我不能取消注册,因为我不知道什么时候。我试图继承 NSNotificationCenter 但我没有以正确的方式尝试它。
一些想法如何解决这个问题?
这里的问题是UITableViewCell
很少被dealloc
'ed
通常你想要的是调用[[NSNotificationCenter defaultCenter] removeObserver:self]
你的子类的prepareForReuse
方法。(一定要调用[super prepareForReuse];
你的实现!)
一个经典的方法是在UIViewController
派生类中注册您的通知viewDidLoad
并在viewDidUnload
.
对于UIView
派生类,如果您走的是正确的道路(将显示逻辑与业务逻辑代码混合),您真的应该三思而后行。但是,您可以initWithFrame
在dealloc
.
由于UITableViewCell
是UIView
派生的,因此正确的位置也可以注册 initWithStyle
和取消注册dealloc
(以防您不重复使用您的单元格)。