objective-c ios 通知中心

通知中心

 NSNotificationCenter

什么是通知中心

顾名思义,通知中心就用来通知事情

那在oc里通知中心是用来传递消息的
发送消息,传递消息
通知中心是 Foundation 框架的一个子系统,它向应用程序中注册为某个事件观察者的所有对象广播消息(即通知)。(从编程角度而言,它是 NSNotificationCenter 类的实例)。该事件可以是发生在应用程序中的任何事情,例如进入后台状态,或者用户开始在文本栏中键入。通知是告诉观察者,事件已经发生或即将发生,因此让观察者有机会以合适的方式响应。通过通知中心来传播通知,是增加应用程序对象间合作和内聚力的一种途径。


NSNotificationCenter是一个单例模式,而这个通知中心的对象会一直存在于一个应用的生命周期,也是说整个应用就会存在一个通知中心,发送者只有一个,而接收者可以有众多。


创建通知中心

NSNotificationCenter* nc=[NSNotificationCenter defaultCenter];

消息类型

@interface NSNotification : NSObject <NSCopying, NSCoding>
- (NSString *)name;
- (id)object;
- (NSDictionary *)userInfo;
@end
name是通知的名字 object发送通知的对象,userInfo是要传递的信息


发送消息

- (void)postNotification:(NSNotification *)notification;
- (void)postNotificationName:(NSString *)aName object:(id)anObject;
- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
根据需要调用不同的发送方法,比如不用传值就不用最后一个


接收(注册)

- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;
有发送肯定有接收啦,这个方法就是在你要接收通知的类里实现,给当前对象注册通知,并且收到通知就会调用selector里我们自己写的方法


移除通知

- (void)removeObserver:(id)observer;
- (void)removeObserver:(id)observer name:(NSString *)aName object:(id)anObject;
当前对象如果不用了,要释放了,就要在当前类里移除通知,一般在 - ( void )dealloc这个方法里写


实例以后再上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值