2

特定の名前のメモを投稿する NSNotificationCenter を中断する方法はありますか? なんらかの理由で期待されるメモを受け取っていないクラスがあります...

明確にするために編集:

MPMoviePlayerPlaybackDidFinishNotification のオブザーバーを追加しましたが、何らかの理由で通知が期待どおりに送信されていないように見えます。ここでの通常の障害は、何らかの理由でオブジェクトがオブザーバーとしてのサブスクライブを解除したことです (その部分のコードが有効に見えるにもかかわらず)。したがって、私の意図は、実際に特定のタイプの NotificationName を渡す NSNotificationCenter を中断できるかどうかでした。この場合、MPMoviePlayerPlaybackDidFinishNotification...

4

2 に答える 2

3

スクリーンショットに表示されているボックスを使用して、Xcode に「-[NSNotificationCenter postNotification:]」という名前のブレークポイントを追加します。これは通知が投稿されるたびに停止することを覚えておいてください。そのため、デバッガーに引数をログに記録させて自動続行させたい場合があります。

于 2011-01-18T19:38:09.553 に答える
0

特定のイベントに対して呼び出すメソッドにブレークポイントを設定できます。例えば

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

[nc addObserver:self selector:@selector(keyboardWillShow:) name: UIKeyboardWillShowNotification object:nil];
[nc addObserver:self selector:@selector(keyboardWillHide:) name: UIKeyboardWillHideNotification object:nil];

ここでは、キーボード イベントの発生時に呼び出す keyboardWillShow および keyboardWillHide メソッドでブレーク ポイントを使用できます。

したがって、有効なイベント名と有効なオブジェクト名を指定する必要があります。

このように使用するオブジェクトとしてのテキストフィールドの場合

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

[notificationCenter addObserver:self
                       selector:@selector (handle_TextFieldTextChanged:)
                           name:UITextFieldTextDidChangeNotification
                         object:self.lockTextField];

正しい方法で通知を追加する必要があると思います。

于 2011-01-18T12:04:58.247 に答える