2

有什么办法可以打破 NSNotificationCenter 发布具有特定名称的注释?我有一堂课由于某种原因没有收到预期的注释......

编辑澄清:

我为 MPMoviePlayerPlaybackDidFinishNotification 添加了一个观察者,但由于某种原因,通知似乎没有按预期发送。这里的一个正常错误是我的对象出于某种原因取消了自己作为观察者的订阅(即使我发现我在该部分的代码看起来有效)。所以,我的意图是是否有可能打破 NSNotificationCenter 实际上传递某种类型的 NotificationName,在这种情况下是 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 回答