IOS中通知中心NSNotificationCenter应用总结

目录[-]

IOS中通知中心NSNotificationCenter应用总结

一、了解几个相关的类

1、NSNotification

这个类可以理解为一个消息对象,其中有三个成员变量。

这个成员变量是这个消息对象的唯一标识,用于辨别消息对象。

 

@property (readonly, copy) NSString *name;

 

这个成员变量定义一个对象,可以理解为针对某一个对象的消息。

 

@property (readonly, retain) id object;

 

这个成员变量是一个字典,可以用其来进行传值。

 

@property (readonly, copy) NSDictionary *userInfo;

 

NSNotification的初始化方法:

 

- (instancetype)initWithName:(NSString *)name object:(id)object userInfo:(NSDictionary *)userInfo;

 

+ (instancetype)notificationWithName:(NSString *)aName object:(id)anObject;

 

+ (instancetype)notificationWithName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;

 

注意:官方文档有明确的说明,不可以使用init进行初始化

2、NSNotificationCenter

这个类是一个通知中心,使用单例设计,每个应用程序都会有一个默认的通知中心。用于调度通知的发送的接受。

 

添加一个观察者,可以为它指定一个方法,名字和对象。接受到通知时,执行方法。

- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;

 

发送通知消息的方法

- (void)postNotification:(NSNotification *)notification;

- (void)postNotificationName:(NSString *)aName object:(id)anObject;

- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;

 

移除观察者的方法

- (void)removeObserver:(id)observer;

- (void)removeObserver:(id)observer name:(NSString *)aName object:(id)anObject;

 

几点注意:

1、如果发送的通知指定了object对象,那么观察者接收的通知设置的object对象与其一样,才会接收到通知,但是接收通知如果将这个参数设置为了nil,则会接收一切通知。

2、观察者的SEL函数指针可以有一个参数,参数就是发送的死奥西对象本身,可以通过这个参数取到消息对象的userInfo,实现传值。

 

二、通知的使用流程

首先,我们在需要接收通知的地方注册观察者,比如:

?
1
2
3
4
     //获取通知中心单例对象
     NSNotificationCenter * center = [NSNotificationCenter defaultCenter];
     //添加当前类对象为一个观察者,name和object设置为nil,表示接收一切通知
     [center addObserver:self selector:@selector(notice:) name:@ "123"  object:nil];

之后,在我们需要时发送通知消息

?
1
2
3
4
     //创建一个消息对象
     NSNotification * notice = [NSNotification notificationWithName:@ "123"  object:nil userInfo:@{@ "1" :@ "123" }];
     //发送消息
        [[NSNotificationCenter defaultCenter]postNotification:notice];

我们可以在回调的函数中取到userInfo内容,如下:

?
1
2
3
-( void )notice:(id)sender{
     NSLog(@ "%@" ,sender);
}

打印结果如下:

 

转载于:https://www.cnblogs.com/fml1com/p/4980095.html

远程桌面连接失败?手把手教你解决CredSSP加密Oracle漏洞(Win10/Win11通用) 本文详细解析了Windows远程桌面连接因CredSSP加密Oracle漏洞安全更新导致的“身份验证错误”问题。文章从原理入手,提供了通过组策略编辑器(适用于专业版)和注册表编辑器(适用于家庭版)两种核心解决方案,指导用户将安全策略调整为推荐的“缓解”模式,以在保障安全的前提下恢复连接,并给出了高级脚本处理与安全最佳实践。 阅读详情

相关推荐

Word中 Go to endnote 出现闪退问题解决办法

Word中 Go to endnote 出现闪退问题解决办法

努力努力努力 1万+

iOS】通知的底层原理(实现)

iOS】通知的底层原理(实现)

cheng_lin0201的博客 1906

HideProcess完结篇.zip_c++ 进程隐藏_c++隐藏进程_隐藏进程_隐藏驱动_驱动隐藏进程

C++隐藏进程,C++语言编写驱动级隐藏

iOS知识点---通知

iOS中的通知(Notification)是一种广泛使用的通信机制,它允许不同组件、模块或应用程序间以一种松耦合的方式传递信息。:不同视图控制器、模型对象、服务类等组件间,当一个组件的状态变化需要告知其他组件但它们之间没有直接引用关系时,可以通过通知来解耦。:对特定通知感兴趣的对象通过向通知中心注册,成为该通知的订阅者。方法,传入订阅者对象(self)、要调用的方法(Selector)以及通知的名称和关联对象。方法的观察者对象),当通知中心接收到匹配的通知时,会调用订阅者的回调方法。

u011489056的专栏 1321

ios开发--注册通知NSNotificationCenter

注册通知:即要在什么地方接受消息 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (mytest:) name:@" postData "object:nil]; 参数介绍: addObserver:观察者,即在什么地方接收通知; selector:收到通知后调用何种方法,即回调函数; n

哲里菲桦 514

NSNotificationCenter简单案例

[code="Objective-C"]@implementation TestClass - (void) dealloc { // If you don't remove yourself as an observer, the Notification Center // will continue to try and send notification obj...

imti_apollo的博客 204

iOS通知中心NSNotificationCenter应用总结

通知中心(NSNotificationCenter)实际是在程序内部提供了一种广播机制。把接收到的消息,根据内部的消息转发表,将消息转发给需要的对象。这句话其实已经很明显的告诉我们要如何使用通知了。第一步:在需要的地方注册要观察的通知,第二步:在某地方发送通知。(这里注意:发送的通知可能是我们自定义的,也可能是系统的)。 一,使用通知 第1中创建通知方法 //注意,通知的使用是有先...

209

iOS通知中心NSNotificationCenter应用

一、了解几个相关的类 1、NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量。 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象。 @property (readonly, copy) NSString *name; 这个成员变量定义一个对象,可以理解为针对某一个对象的消息。 @property (readonly, ret...

weixin_30911809的博客 80

ios 通知接收两次_iOS通知中心(NSNotificationCenter)的使用总结

iOS通知中心NSNotificationCenter应用总结一、了解几个相关的类1、NSNotification这个类可以理解为一个消息对象,其中有三个成员变量。这个成员变量是这个消息对象的唯一标识,用于辨别消息对象。@property(readonly,copy)NSString*name;这个成员变量定义一个对象,可以理解为针对某一个对象的消息。@property(readonly,ret...

weixin_39735288的博客 741

NSNotificationCenter 的详细说明

1. 定义一个方法 -(void) update{ } 2. 对象注册,并关连消息 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(update) name:@"update" object:nil] 3. ...

weixin_34026484的博客 219

iOS中通知的使用

一、NSNotificationCenter简介:NSNotificationCenter是一个单进程范围内的全局通知中心,每一个App都有一个单例的NSNotificationCenter,通过一个字符串来注册和触发通知,为不同类之间进行消息传递和函数调用提供了一种比较简单的方法,类之间的关联性比较弱。二、NSNotificationCenter一般使用步骤1.通过[NSNotification

有志者事竟成-程序员也可以创造优雅的艺术 932

iOS中通知的使用NSNotificationCenter

在实际的开发中,通知这一手段还是比较常用的。那今天就详细讲讲通知。 1.通知中心(NSNotificationCenter)实际是在程序内部提供了一种广播机制。把接收到的消息,根据内部的消息转发表,将消息转发给需要的对象。这句话其实已经很明显的告诉我们要如何使用通知了。第一步:在需要的地方注册要观察的通知,第二步:在某地方发送通知。(这里注意:发送的通知可能是我们自定义的,也可能是系统的)。

gujinyue 2万+

iOS 通知(NSNotification)的简单使用

通知:NSNotification,是iOS开发中一种重要的设计模式,它的实质是程序内部提供的一种广播机制。把接受到的消息根据内部消息转发表,将消息转发给需要的对象。 通知这种设计模式,在开发中常用来不同类之间的通信,也就是常说的页面之间的传值。当然它不仅仅只有这一种应用场景,还有一种常用场景是用来控制一些属性或者控件,使得这些属性或控件在不同情况下发生响应的变化。在我以前的一个项目中就有这样的...

m0_37681833的博客 2万+

iOS 通知NSNotification 使用详解

如果在一个类中想要执行另一个类中的方法可以使用通知 1.创建一个通知对象:使用notificationWithName:object: 或者 notificationWithName:object:userInfo:     NSNotification* notification = [NSNotification notificationWithName:kImageNotific

mazegong的博客 6344

iOS 使用通知的正确“姿势”

第一种: 最纯粹的,如: 1 [[NSNotificationCenter defaultCenter] postNotificationName:@"aNotification" object:nil]; 第二种: 在PCH文件中写宏,如: 1

火海夕 999
上一篇: iOS开发多线程篇—多线程简单介绍
下一篇: CSS技巧----DIV+CSS规范命名大全集合
angbi0981
博客等级 码龄10年 0粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值