iOS设计模式之NSNotificationCenter 消息中心
2024-08-31 11:58:10
消息中心模式和KVO模式有点相似,差别在于。KVO 模式是意图在于监听摸一个相应的值的变化。而去出发一个方法相应的动作。而消息中心在于,广播。它就像一个广播基站,发送一条消息,在全部的加入监听的地方都可以收到此信息,并作出不同活着同样的动作,范围更广大。功能更强大
//加入消息中心监听(加入观察者,也能说成加入监听)
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(myNotification:)name:@“test1" object:nil];
它监听test1 整个值是否有人发送整个消息,监听者是self本类。假设监听到,就会触发myNotification
方法
方法
//通过消息中心发消息,
//注意:消息中心,先做监听后发消息
//object:发送的參数
//注意:消息中心,先做监听后发消息
//object:发送的參数
[[NSNotificationCenter defaultCenter]postNotificationName:@“test1" object:arra];
//这种方法能够在本project的随意类中,这样就能和别的地方进行通信了
//比方说,有五个页面,在前4个页面中都创建一个消息中心用来监听 一个 消息@“change”
// 我们在第五个页面。通过消息中心,发送一个@“change” 消息,这样前四个页面就能够收到这个消息。然后做出对应的动作
//一定要注意。创建消息中心监听 一定要在发送消息之前。
//灵活运用各种周期函数时解决问题的关键
来个实例看看
两个界面 界面1 界面2 界面1创建消息中心监听消息,
界面2 床间消息中心,发送消息,并带有參数
//在一个界面1内创建消息中心
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(myNotification:)
name:@“test1" object:nil];
addObserver:self selector:@selector(myNotification:)
name:@“test1" object:nil];
在界面1实现监听方法
//监听到消息的时候运行该方法
- (void)myNotification:(NSNotification *)n
{
//从接受到的消息n中,取出object,即消息中载入的參数
//NSString *param = [n object];
NSArray
*arr = [n object];
NSLog(@"%@",arr);
}
在界面2发送一个数组作为參数
NSArray
*arra = [NSArrayarrayWithObjects:@"a",@"d",
nil];
//通过消息中心发消息,
//注意:消息中心,先做监听后发消息
//object:发送的參数
*arra = [NSArrayarrayWithObjects:@"a",@"d",
nil];
//通过消息中心发消息,
//注意:消息中心,先做监听后发消息
//object:发送的參数
[[NSNotificationCenter defaultCenter]
postNotificationName:@“test1" object:arra];
postNotificationName:@“test1" object:arra];
最新文章
- Struts的文件上传下载
- CozyRSS开发记录15-获取和显示RSS内容
- Spring+struts2的基础上继续加hibernate3的jar包
- 30分钟LINQ教程(转)
- 图论$\cdot$最短路问题
- uGUI练习(四) Light UI
- HDU 1890:Robotic Sort(Splay)
- php关于return的关键字
- Android安全问题 抢先开机启动
- BNUOJ-26482 Juice 树形DP
- LInux系统及其文件系统
- jquery 和 mui 上拉加载
- SQL2005查询死锁的表和具体的语句
- gd.so和php_gd2.so 有什么区别
- JS基础整理面试题
- BZOJ4407: 于神之怒加强版(莫比乌斯反演 线性筛)
- Android BLE蓝牙详细解读
- BlockTrain网络
- 在vscode成功配置Python环境
- 视角同步NewViewTarget
热门文章
- hbase的hbase-site.xml配置文件
- HDU 4321 Contest 3
- linux下使用DBCA(database configuration assistant)创建oracle数据库
- Knockout源代码精析-怎样解析demo元素,获取到bindings(二)?
- struts2请求过程源代码分析
- HDU 2841 Visible Trees(容斥定理)
- Ubuntu 16.04 安装 Open Jdk
- m-orchastration system
- zzuoj--1001--汽水瓶(简单数学)
- spring boot多数据源配置示例