简单的通知

来源:互联网 发布:2017淘宝网红店排名 编辑:程序博客网 时间:2024/05/22 09:40

为了能让小白明白逻辑关系设置一个简单的场景  比如说我要在B类中改变A类的页面颜色  (A和B之间可以完全没关系)


首先在A类里面写   [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(click:) name:@"abcdef" object:nil];   创建一个监控者 它所监控的是abcdef这个属性 一旦这个属性被监控到 他就运行click:这个方法


在B类中写    [[NSNotificationCenter defaultCenter]postNotificationName:@"abcdef" object:obj];   此时注意 这里的abcdef一定与创建时的要监控的属性一致 可以随便写 但是要保证两边一致  这个obj是一个id对象  可以给传数组字典 等等等 都行 在B中一旦运行到这一行代码 A类就会检测到 之后A类就会运行 click:这个方法 此时注意

click:我们写的是带”:“的 也就是说传值得  用过UIButton点击的都知道 传的是按钮本身 这个同理 传的是通知本身  那么传他有什么用呢 请看下边 


- (void)click:(NSNotification *)notification{

     notification.object;
 
}

notification是一个通知对象 他有一个属性是object, 这个属性就是我们刚才在B类中传过来的obj  这下明白了吧

就是说 B类中 [[NSNotificationCenter defaultCenter]postNotificationName:@"abcdef" object:obj]; 这句代码 后边的obj是你传过去的  他可以是 数组 或 字典 或等等等 都行

之后A类中这个 notification.object 就是obj 这样是不是实现了通知传值 可用性很灵活


0 0
原创粉丝点击