addObserver和postNotification函数传递函数的区别
上一篇文章中,我们利用addObserver来订阅消息,用postNotification来发布消息,但是有一 点要注意的是,addObserver和postNotification都可以传递一个CCObject数据,那么如果两 个函数都传递了数据,在接收消息时,我们应该取谁的数据呢?
在上一篇的代码中修改OtherLayer类,代码如下:
我们看到,在init中新建了一个CCString对象,作为addObserver函数中的参数 接着,在testMsg中就可以获取到CCString变量,我们用调试模式运行下,将看到以下日志输出:
再来看看postNotification如何传递数据,修改HelloWorldScene.cpp中的sendMsg函数即可:
调试模式下运行项目,可看见:
嗯,什么都没有。 因为,如果addObserver和postNotification函数都传递了数据,并且不是同一个数据,那将 无法发布消息。换句话说,我们只能使用其中一个函数进行数据的传递,我们把 addObserver函数的最后一个参数设为NULL. 再次用调试模式运行项目,可看到:
这代表postNotification的数据传递成功。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |