oc—通知

通知

通知(广播)

可以一对多的发送通知(一个发送者 多个观察者)

特别注意:在发送者 发送通知的时候,必须有观察者

发送者,就是注册一个通知中心,以他为中心,发送消息

通过通知的名字,来判断是哪个通知

例子:老师通知男学生和女学生来开班会。

分析:老师是一个发送中心,则学生需要注意老师的发送的消息,他们为观察者

在老师的类里

//建一个通知中心

-(void)speak{

[[NSNotificationCenter defaultCenter]postNotificationName:@"老师的通知" object:nil userInfo:@{@“content":@"全班同学注意了,今天要开班会"}];

}

在男学生的里

需要定义两个方法:一个方法是接收到老师的消息,第二个方法是对老师的消息做出判断

-(void)study{

[ [ NSNotificationCenter defaultCenter]addObserver:self selector:@selector(jianCha) name:@"老师的通知" object:nil];

}

//在自己的类里使用,就不用声明了

-(void)jianCha{

NSLog(@“我们要叫检查了。。”);

}

//最后移除观察者

-(void)dealloc{

[ [ NSNotificationCenter defaultCenter] removeObserver : self];

}

在女学生的类里

//接收消息

-(void)note{

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(banHui : )  name:@"老师的通知" object:nil];

}

//NSNotification 包含了通知里面的所有内容

//这里有一个传值

-(void)banHui:(NSNotification *)message{

NSLog(@"听老师说%@",message.userInfo[@"content"]);

}

//移除观察者

-(void)dealloc{

[[NSNotificationCenter defaultCenter]removeObserver:self];

}

最后在主文件里实现

时间: 2024-10-09 22:36:40

oc—通知的相关文章

OC通知实例

#import "NotificationClass.h" #import "AnotherNotificationClass.h" @implementation NotificationClass //注册通知 -(void)addNotification { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeFun:) name:@"chan

OC通知中心

//通知中心广播站建立 //1.head.h #import <Foundation/Foundation.h> @interface BJBroadcast : NSObject -(void)sendBroadCast; -(void)sendBroadCastLoop; @end //2.implementation #import "BJBroadcast.h" @implementation BJBroadcast -(void)sendBroadCastLoop

自实现OC通知中心

// //  NotificationCenter.h //  Demo // //  Created by QzydeMac on 15/1/17. //  Copyright (c) 2015年 Qzy. All rights reserved. // #import <Foundation/Foundation.h> @interface Notification : NSObject @property (retain,nonatomic,readwrite) NSDictionary

(转载)OC学习篇之---通知(NSNotificationCenter)

在前一篇文章中我们介绍了OC中很常用的两个技术:KVC和KVO,今天我们来看一下OC中另外的一个常用技术:通知(Nofitication) 其实这里的通知和之前说到的KVO功能很想,也是用于监听操作的,但是和KVO不同的是,KVO只用来监听属性值的变化,这个发送监听的操作是系统控制的,我们控制不了,我们只能控制监听操作,类似于Android中系统发送的广播,我们只能接受.但是通知就不一样了,他的监听发送也是又我们自己控制,我们可以在任何地方任何时机发送一个通知,类似于Android中开发者自己发

ios开发——实用技术OC-Swift篇&amp;本地通知与远程通知详解

本地通知与远程通知详解 一:本地通知 Local Notification的作用 Local Notification(本地通知) :是根据本机状态做出的通知行为,因此,凡是仅需依赖本机状态即可判断需要发出通知的行为都可以或者说应该使用Local Notification来处理.比方说:iBeacon中进入了某个Beacon region,或者说自定义的一些定时提醒等. 构建Local Notification 在iOS中,构建LocalNotification非常简单,只需要掌握好NSLoca

iOS—OC——KVO,代理,通知

代理:一般控件用的比较多,其实也可以用block实现,如果实现的接口比较 多得话,建议用代理,如UITableView. 通知:这东西是全局的,而且是同步的,如果你要全局发送消息,并且做的事情时间不长,不会阻塞线程的话,建议使用. KVO:KVO是建立在KVC的基础之上的,它通过KeyPath 观察对象的值,当值发生变化的时候会收到通知.比如,你需要监听UITableView的ContentOffSet,那么当TableView滑动的时候,就会不停的收到contentOffSet Point值.

【OC学习-34】通知NSNotification,类似于KVO,用于对象之间监听然后发通知提醒

通知其实和KVO类似,就是先在类A中设置通知,然后再类B中设置个监听这个通知的方法,当然可以通过这个通知方法可以传递一些参数,得到这个参数之后,一般是触发一个动作,此处举例就是触发输出一些内容而已. (1)在Child类中初始化一个实例变量为100,每次递减2,当小于90时候触发通知. //Child.h #import <Foundation/Foundation.h> @interface Child : NSObject @property(nonatomic,assign)NSInte

[oc学习日记]kvc,kvo和通知

KVC键值对编码 kvc键值对编码就是在对象没有声明属性(毕竟能用点方法没几个人会再去用kvc),成员变量没有公有化,并且没有写描述方法时使用的一种给成员变量或者属性赋值的一种方式. 例如: //我们创建了一个学生类,并将其实例化 Student *stu = [[Student alloc]init]; //给学生队形的name成员变量使用kvc赋值 [stu setValue:@"ss" forKey:@"name"]; //取出使用键值对进行赋值了的name成

61 (OC)* 代理 block 通知 代理 kvo

1.从源头上理解和区别block和delegate delegate运行成本低,block的运行成本高. block出栈需要将使用的数据从栈内存拷贝到堆内存,当然对象的话就是加计数,使用完或者block置nil后才消除.delegate只是保存了一个对象指针,直接回调,没有额外消耗.就像C的函数指针,只多做了一个查表动作. 2.从使用场景区别block和delegate 有多个相关方法.假如每个方法都设置一个 block, 这样会更麻烦.而 delegate 让多个方法分成一组,只需要设置一次,