通知&代理

通知:多对多的关系,比较耗性能

使用:

1.观察者到通知中心注册(接受那个发布者发布的什么通知,监听到通知后的处理方法)

[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(keyBoardShow:) name:UIKeyboardDidShowNotification object:nil];

2.移除观察者

[[NSNotificationCenter defaultCenter] removeObserver:self];

代理:一对一的关系,性能较好,与继承相比较耦合性大大降低

时间: 2024-08-03 08:26:46

通知&代理的相关文章

iOS 通知代理执行代理方式时,代理为nil的解决办法

1.下面代码是描述: 点击Toolbar上的按钮时,通知代理去调代理方法. 1 - (void)didClickedToolbarBtn:(UIButton *)button 2 { 3 4 if ([self.delegate respondsToSelector:@selector(toolbar:didClickedButton:)]) { 5 [self.delegate toolbar:self didClickedButton:button.tag]; 6 } 7 self.sele

通知/代理/block 三者比对

通知 :   “一对多”,”多对一” 传值 四个步骤:  1.发送通知2.创建监听者3.接收通知4.移除监听者 使用场景:1- 很多控制器都需要知道一个事件,应该用通知:2 - 相隔多层的两个控制器之间跳转 注意事项:  1, 一旦接收消息的对象多了,就难以控制了,可能有你不希望的对象接受了消息并做了处理 2,创建了观察者,在dealloc里面一定要移除: ————————————————————————————————————————————————————————————— 代理 “一对一”

通知 代理 block对比。

通知: 1.“一对多”,“多对一”传值 2.应用场景: 一对多传值的时候.  相隔多层的控制器之间传值的时候. 3.使用通知需要注意的是,控制器销毁的时候一定记得移除通知,项目中的通知尽量越少越好,通知多了比较难控制,很有可能发出了通知有别的控件监听到了从而做出相应操作 4.对于通知来说,通知的发送者根本不管接收者是否收到通知,也不管收到通知之后做什么操作,发送者只管发送,发送之后跟他没有一毛钱的关系了. 代理: 1.“一对一传值” 2.应用场景:一般用过公共接口,比如tableview的dal

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

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

IOS开发——UI进阶篇(五)通知、代理、kvo的应用和对比,购物车

一.通知 1.通知中心(NSNotificationCenter)每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信任何一个对象都可以向通知中心发布通知(NSNotification),描述自己在做什么.其他感兴趣的对象(Observer)可以申请在某个特定通知发布时(或在某个特定的对象发布通知时)收到这个通知 2.通知(NSNotification)一个完整的通知一般包含3个属性:- (NSString *)name; // 通知

代理和通知

代理和通知 代理的使用步骤 定义一份代理协议 协议名字的格式一般是:类名 + Delegate 比如UITableViewDelegate 代理方法细节 一般都是@optional 方法名一般都以类名开头 比如- (void)scrollViewDidScroll: 一般都需要将对象本身传出去 比如tableView的方法都会把tableView本身传出去 必须要遵守NSObject协议 比如@protocol XMGWineCellDelegate <NSObject> 声明一个代理属性 代

iOS中使用代理的步骤与通知简介

使用代理额步骤: 1.先搞清楚谁是谁的代理(delegate) 2.定义代理协议,协议名称的命名规范:控件类名 + Delegate 3.定义代理方法      a.代理方法一般都定义为@optional      b.代理方法名都以控件名开头      c.代理方法至少有1个参数,将控件本身传递出去 4.设置代理(delegate)对象  (比如myView.delegate = xxxx;)      a.代理对象遵守协议      b.代理对象实现协议里面该实现的方法 5.在恰当的时刻调用

21-30(NSTimer定时器 Cell的重用原理 代理的使用场合 UITableViewCell结构 监听键盘的通知)

21.NSTimer定时器 22.tableView的基本用法 23.tableView的常用属性 24.Cell的重用原理: 25.UITableViewCell结构 26.使用xib封装一个view的步骤 27.代理的使用场合 28.使用delegate的步骤 29.通过代码自定义cell步骤 30.监听键盘的通知 { 细节决定成败, 这句话讲的太对了, 所以我们要注意每一个细节!今天还好注意了, 没犯错!嘿嘿! 今天心情特别好, 心情好! 啥都好! 给大家来个笑, 工作的同时,不要忘记笑容

5、通知和代理区别和使用

一.代理Delegate 1.使用的场合 主要用于子控件发生某些动作时,通知父控件,子控件的代理是父控件.常见就控制器就是子控件的的代理. 2.代理的使用步骤 1> 先搞清除谁是谁的代理 2> 定义代理协议,协议名称的规范是:控件类名+Delegate 3> 定义代理方法 *代理方法一般都定义@optional *代理方法名都以控件名开头 *代理方法至少一个参数,将控件本身传递出去 4> 设置代理对象 *代理对象遵守协议 *代理对象实现协议里面的该实现的方法 5> 在恰当的时