私は通常、以下のサンプルのように NSNotification を使用します。
ビューでDidLoad:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(foo:) name:kName1 object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bar:) name:kName2 object:nil];
viewDidUnload と dealloc で:
[[NSNotificationCenter defaultCenter] removeObserver:self];
しかし、友人は[[NSNotificationCenter defaultCenter] removeObserver:self];
、スーパークラスの . 彼は、次のコードを使用してオブザーバーを1つずつ削除することを提案しました。
[[NSNotificationCenter defaultCenter] removeObserver:self name:kName1 object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:kName2 object:nil];
ASIHttpRequest ライブラリのコード ( https://github.com/pokeb/asi-http-request ) を確認しました。それは私の友人の提案に従います。
私の友人が正しいかどうか知りたいですか?私の意見では、現在のインスタンスはアンロードまたは解放されるため、スーパークラスの通知も役に立たない. また、システム UIViewController サブクラスの使用通知はありますか?