观察者模式工具类——CCNotificationCenter.
函数:
1.addObserver(订阅消息)
addObserver(CCObject* target, //要订阅消息的主体
SEL_CallFuncO selector, //消息回调函数
const char* name, //消息名称
CCObject* obj //要传递的数据
)
通过订阅消息,我们才能收到感兴趣的消息,消息通过回调函数来接收,消息名称代表消息的类型,用于筛选消息。最后要注意的是,最后一个参数代表消息要传递的数据,也就是说,在订阅消息时,我们可以传递数据,在接收到消息时,这个数据也同时传递回来。
2.removeObserver(取消订阅消息)
removeObserver(CCObject* target, //取消订阅消息的主体
const char* name //消息名称
)
如果不想继续接收某个类型的消息,则需要取消订阅消息,通常在释放场景或者某个对象之前,对要取消该场景或对象订阅的消息,否则,当消息产生时,会因为对象不存在而产生一些意外的Bug。
3 postNotification(发布消息)
postNotification(const char* name) //参数:消息名称
消息订阅了,那什么时候能收到消息呢?这就需要在特定的条件下发布特定的消息,postNotification就是用于发布消息的,当然了,发布消息时必须指定消息类型,也就是消息名称。
4.postNotification(发布消息)
postNotification(const char* name, //消息名称
CCObject* object) //传递的数据
传递具体的数据,某某长高了,具体长了多少必须告诉订阅者。