菜鸟教程小白 发表于 2022-12-13 13:54:41

objective-c - 特定对象的 nsnotification


                                            <p><p>我正在使用 xcode 和 Objective c 开发 ios 应用程序 ios 5+。好的,目前正在搞乱 nsnotifications,我只需要一些澄清,因为我有点困惑。
假设我有一个 ViewController ,我添加了一个观察者来喜欢这样</p>

<pre><code> [ addObserver:self selector:@selector(showContent:) name:kTPSShowContentNotification object:self];
</code></pre>

<p>对象设置为self。我认为这意味着它仅在从该对象发送时才从该通知中查找。我错了吗?</p>

<p>在代码的其他地方,我会发出这样的通知</p>

<pre><code> [ postNotificationName:kTPSShowContentNotification object:currentVC];
</code></pre>

<p>其中 currentVC 是最初设置观察者的 ViewController 。
我认为这就是捕获该通知所需的全部内容,因为该帖子告诉通知中心从该 ViewController 发送它。但它没有捕获它,我不确定为什么。如果在添加观察者时我将对象设置为 nil,那么它会捕获它,但所有其他 ViewController (如果有)也具有该通知的观察者。有没有办法解决 ?我接近这个完全错误吗? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>要仅从 <em>theObjectSendingNotification</em> 对象接收通知,您应该编写:</p>

<pre><code>[ addObserver:self selector:@selector(showContent:) name:kTPSShowContentNotification object:theObjectSendingNotification];
</code></pre>

<p>发送通知的对象应该以这种方式发送</p>

<pre><code> [ postNotificationName:kTPSShowContentNotification object:self];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 特定对象的 nsnotification,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10815381/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10815381/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 特定对象的 nsnotification