NSNotificationCenter发布到nil - >紧急

时间:2012-01-23 23:28:33

标签: iphone ios uitableview uikit nsnotification

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

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

2 个答案:

答案 0 :(得分:2)

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

通常你想要的是在你的子类'[[NSNotificationCenter defaultCenter] removeObserver:self]方法中调用prepareForReuse。 (务必在实施中致电[super prepareForReuse];!)

答案 1 :(得分:1)

一种经典的方法是在UIViewController的{​​{1}}派生类中注册您的通知,并在viewDidLoad中取消注册。

对于viewDidUnload派生类,如果你采用正确的方式(将显示逻辑与业务逻辑代码混合),你应该三思而后行。但是,您可以在UIView注册并在initWithFrame上取消注册。

由于deallocUITableViewCell派生的,因此正确的位置可以在UIView中注册,也可以在initWithStyle中取消注册(如果您没有重复使用您的单元格)。