2011-02-02 4 views
10

私は電子書籍リーダーを開発しており、次の問題が発生しました。私はIBActionメソッドを使用して、ボタンがタップされると、intnがアクションメソッドを呼び出すNSNotificationをポストします。 IBActionメソッドは、ボタンをタップしてevry timeと呼ぶ必要があります。このアクションを完了した後、私は自分のホームページに行き、戻ってボタンをもう一度クリックする必要があります。これは私が問題に直面しているところです。あなたがこの方法で通知オブザーバを追加する場合は、複数回呼び出さこれで私を助けてください....NS通知が複数回発行されました

//IBAction Method 
if (sender.tag == PenToolAction) { 

    GLogInfo(@"Pen tool tapped"); 
    [self hideSelf]; 
    [[NSNotificationCenter defaultCenter] postNotificationName:PenToolActionInitialized object:nil]; 
} 
+0

[[NSNotificationCenter defaultCenter] addObserver: ..] 'コール? – Jilouc

+0

私はそれを受信者クラスのViewDidLoadメソッドに入れました。 –

答えて

35

..方法は、第2の時間から複数回呼び出さなっていると数は増加し続けます通知を複数回も受信します。

代わりに[[NSNotificationCenter defaultCenter] addObserver:...]initメソッドに入れてみるか、直前に[[NSNotificationCenter defaultCenter] removeObserver:self]を呼び出してみてください。

+2

パーフェクトありがとう! – Elmo

+0

ありがとうJilouc! –

+0

私はリンゴがそれをより良く文書化したいと思う。そして、より良いパブリックAPIがあればいいと思いますので、オブジェクトが既に特定の通知に登録されているかどうかを判断できます。 – LightningStryk

1

ありがとうございました。私の質問の解決策を見つけました。私のコードの主な原因は、メモリ管理の問題です...私はx-codeアナライザを使って私は主な変数をリリースするのを忘れていたことに気付きました。私は変数をリリースしましたが、今では私のコードがうまくいきます。...

関連する問題