通知用の私のTableViewCell登録。でも、いつになるかわからないので登録解除できません。NSNotificationCenter をサブクラス化しようとしましたが、正しい方法で試しませんでした。
これを修正する方法についていくつかのアイデアはありますか?
通知用の私のTableViewCell登録。でも、いつになるかわからないので登録解除できません。NSNotificationCenter をサブクラス化しようとしましたが、正しい方法で試しませんでした。
これを修正する方法についていくつかのアイデアはありますか?
ここでの問題は、UITableViewCell
めったにdealloc
「ed」にならないことです
通常、必要なのは[[NSNotificationCenter defaultCenter] removeObserver:self]
サブクラスのprepareForReuse
メソッドで呼び出すことです。[super prepareForReuse];
(必ず実装を呼び出してください!)
従来のアプローチでは、通知を のUIViewController
派生クラスにviewDidLoad
登録し、 で登録解除しviewDidUnload
ます。
派生クラスのUIView
場合、正しい方法 (display-logic-と business-logic-code の混合) を行っている場合は、よく考えてください。initWithFrame
ただし、 で登録および登録解除することはできますdealloc
。
UITableViewCell
はUIView
派生しているため、適切な場所は登録 とinitWithStyle
登録解除でdealloc
もあります (セルを再利用しない場合)。