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場合、正しい方法 (display-logic-と business-logic-code の混合) を行っている場合は、よく考えてください。initWithFrameただし、 で登録および登録解除することはできますdealloc

UITableViewCellUIView派生しているため、適切な場所は登録 とinitWithStyle登録解除でdeallocもあります (セルを再利用しない場合)。

于 2012-01-23T23:32:47.570 に答える