1、iOS通知机制:
1-1、iOS通知发布者、通知中心、监听器之间的关系:
如下图所示:
2、通知(NSNotification)简介:
3、通知中心(NSNotificationCenter)
3-1、每个应用程序只有一个通知中心对象(单例对象):
4、发布通知:
4-1、对象在自己需要的某个时候使用通知类(NSNotification)创建通知对象后让通知中心帮忙发布通知:
- 1、可以在对象A需要使用通知的某个位置,直接让通知中心帮忙发送的时候将通知中的一系列信息通过通知中心提供的方法创建通知并同时发送出去:
示例程序:
1.- (void)postNote{2. // MARK: - 发送通知3. [[NSNotificationCenter defaultCenter] postNotificationName:@"HF" object:self userInfo:@{4. @"name" : @"贺华峰",5. @"birthday" : @"1994-01-19"6. }];7.}
- 2、先创建通知对象,将通知信息创建的时候就设置好;然后让通知中心帮忙发送:
示例程序:
1.- (void)postNote2{2. // 1. 创建通知3. NSNotification *note = [NSNotification notificationWithName:@"HF2" object:self userInfo:@{4. @"name" : @"贺华峰2",5. @"birthday" : @"01-19"6. }];7. // 2. 通知中心帮忙发送8. [[NSNotificationCenter defaultCenter] postNotification:note];9.}
- 3、发布通知的常用方法:
5、监听通知:
5-1、监听器只有在通知中心注册监听通知之后,才能在通知发布之后接收通知;且监听器注册监听一定要在通知发布之前;
5-2、监听器注册监听通知常用方式:
- 方式一:
- 方式二:
6、注销:
6-1、监听器在自己销毁前一定要注销通知,否则,会造成野指针问题;
6-2、监听器注销所监听的通知的方式:
7、键盘通知:
7-1、常见键盘通知类型:
7-2、键盘通知常用附加信息:
8、常见键盘通知:
8-1、键盘将要显示:
8-2、键盘将要隐藏:
8-3、键盘的frame将要改变:
9、iOS设备类通知:
9-1、UIDevice类通知:
10、比较通知和代理:
10-1、代理:
- 1、代理设计模式的作用:
- 1.A对象监听B对象的一些行为,A成为B的代理;
- 2.B对象想告诉A对象一些事情,A成为B的代理。
- 2、代理设计模式的总结:
- 如果你想监听别人的一些行为,那么你就要成为别人的代理;
- 如果你想告诉别人一些事情,那么就让别人成为你的代理
- 3、代理设计模式的开发步骤:
- 1.拟一份协议(协议名字的格式:控件名 + Delegate),在协议里面声明一些代理方法(一般代理方法都是@optional);
- 2.声明一个代理属性:@property (nonatomic, weak) id<代理协议> delegate;
- 3.在内部发生某些行为时,调用代理对应的代理方法,通知代理内部发生什么事;
- 4.设置代理:xxx.delegate = yyy;
- 5.yyy对象遵守协议,实现代理方法。
- 4、代理和通知的区别:
- 代理:1个对象只能告诉另1个对象发生了什么事;
- 通知:1个对象可以告诉N个对象发生了什么事。
10-2、通知和代理的选择:
时间: 2024-12-26 08:51:22