0

我的 TableViewCell 注册通知。但是我不能取消注册,因为我不知道什么时候。我试图继承 NSNotificationCenter 但我没有以正确的方式尝试它。

一些想法如何解决这个问题?

4

2 回答 2

2

这里的问题是UITableViewCell很少被dealloc'ed

通常你想要的是调用[[NSNotificationCenter defaultCenter] removeObserver:self]你的子类的prepareForReuse方法。(一定要调用[super prepareForReuse];你的实现!)

于 2012-01-23T23:44:05.917 回答
1

一个经典的方法是在UIViewController派生类中注册您的通知viewDidLoad并在viewDidUnload.

对于UIView派生类,如果您走的是正确的道路(将显示逻辑与业务逻辑代码混合),您真的应该三思而后行。但是,您可以initWithFramedealloc.

由于UITableViewCellUIView派生的,因此正确的位置也可以注册 initWithStyle和取消注册dealloc(以防您不重复使用您的单元格)。

于 2012-01-23T23:32:47.570 回答