我正在使用 xcode 和 Objective c 开发 ios 应用程序 ios 5+。好的,目前正在搞乱 nsnotifications,我只需要一些澄清,因为我有点困惑。
假设我有一个 View Controller ,我添加了一个观察者来喜欢这样
[[NSNotificationCenter defaultCenter] addObserver:self selectorselector(showContent name:kTPSShowContentNotification object:self];
对象设置为self。我认为这意味着它仅在从该对象发送时才从该通知中查找。我错了吗?
在代码的其他地方,我会发出这样的通知
[[NSNotificationCenter defaultCenter] postNotificationName:kTPSShowContentNotification object:currentVC];
其中 currentVC 是最初设置观察者的 View Controller 。
我认为这就是捕获该通知所需的全部内容,因为该帖子告诉通知中心从该 View Controller 发送它。但它没有捕获它,我不确定为什么。如果在添加观察者时我将对象设置为 nil,那么它会捕获它,但所有其他 View Controller (如果有)也具有该通知的观察者。有没有办法解决 ?我接近这个完全错误吗?
Best Answer-推荐答案 strong>
要仅从 theObjectSendingNotification 对象接收通知,您应该编写:
[[NSNotificationCenter defaultCenter] addObserver:self selectorselector(showContent name:kTPSShowContentNotification object:theObjectSendingNotification];
发送通知的对象应该以这种方式发送
[[NSNotificationCenter defaultCenter] postNotificationName:kTPSShowContentNotification object:self];
关于objective-c - 特定对象的 nsnotification,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/10815381/
|