IOS回调机制——代理,通知中心以及Block
Xcode5.0正式版
代理模式
- @protocol CallBackDelegate;
- @interface ViewController : UIViewController
- @property (weak, nonatomic) id<CallBackDelegate> delegate;
- @end
- @protocol CallBackDelegate <NSObject>
- - (void)showArrayWithDelegate:(NSArray *)array;
- @end
- - (IBAction)delegateCallBack
- {
- NSDictionary *dict = @{@"array": @[@"Chelsea", @"MUFC", @"Real Madrid"]};
- NSArray *array = dict[@"array"];
- [self.delegate showArrayWithDelegate:array];
- }
调用,显示
- - (void)showArrayWithDelegate:(NSArray *)array
- {
- _outputLabel.text = array[2];
- }
最重要也是最容易忽略的,就是一定要设置delegate的指向。
使用通知中心
- - (IBAction)callBack
- {
- NSDictionary *dict = @{@"array": @[@"Chelsea", @"MUFC", @"Real Madrid"]};
- NSArray *array = dict[@"array"];
- [[NSNotificationCenter defaultCenter] postNotificationName:@"OutputArrayNotification" object:array];
- }
注册和移出观察者
- - (void)viewWillAppear:(BOOL)animated
- {
- [super viewWillAppear:animated];
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(outputWithNote:) name:@"OutputArrayNotification" object:nil];
- }
- - (void)viewDidDisappear:(BOOL)animated
- {
- [super viewDidDisappear:animated];
- [[NSNotificationCenter defaultCenter] removeObserver:self name:@"OutputArrayNotification" object:nil];
- }
显示
- - (void)outputWithNote:(NSNotification *)aNotification
- {
- NSArray *receiveArray = [aNotification object];
- _outputLabel.text = receiveArray[0];
- }
Block
- - (void)showArrayUsingBlock:(Arr_Block)block
- {
- NSDictionary *dict = @{@"array": @[@"Chelsea", @"MUFC", @"Real Madrid"]};
- NSArray *array = dict[@"array"];
- block(array);
- }
调用方法,显示
- - (IBAction)blockCallBack
- {
- [self showArrayUsingBlock:^(NSArray *array) {
- _outputLabel.text = array[1];
- }];
- }
Xcode5.0正式版
代理模式
- @protocol CallBackDelegate;
- @interface ViewController : UIViewController
- @property (weak, nonatomic) id<CallBackDelegate> delegate;
- @end
- @protocol CallBackDelegate <NSObject>
- - (void)showArrayWithDelegate:(NSArray *)array;
- @end
- - (IBAction)delegateCallBack
- {
- NSDictionary *dict = @{@"array": @[@"Chelsea", @"MUFC", @"Real Madrid"]};
- NSArray *array = dict[@"array"];
- [self.delegate showArrayWithDelegate:array];
- }
调用,显示
- - (void)showArrayWithDelegate:(NSArray *)array
- {
- _outputLabel.text = array[2];
- }
最重要也是最容易忽略的,就是一定要设置delegate的指向。
使用通知中心
- - (IBAction)callBack
- {
- NSDictionary *dict = @{@"array": @[@"Chelsea", @"MUFC", @"Real Madrid"]};
- NSArray *array = dict[@"array"];
- [[NSNotificationCenter defaultCenter] postNotificationName:@"OutputArrayNotification" object:array];
- }
注册和移出观察者
- - (void)viewWillAppear:(BOOL)animated
- {
- [super viewWillAppear:animated];
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(outputWithNote:) name:@"OutputArrayNotification" object:nil];
- }
- - (void)viewDidDisappear:(BOOL)animated
- {
- [super viewDidDisappear:animated];
- [[NSNotificationCenter defaultCenter] removeObserver:self name:@"OutputArrayNotification" object:nil];
- }
显示
- - (void)outputWithNote:(NSNotification *)aNotification
- {
- NSArray *receiveArray = [aNotification object];
- _outputLabel.text = receiveArray[0];
- }
Block
- - (void)showArrayUsingBlock:(Arr_Block)block
- {
- NSDictionary *dict = @{@"array": @[@"Chelsea", @"MUFC", @"Real Madrid"]};
- NSArray *array = dict[@"array"];
- block(array);
- }
调用方法,显示
- - (IBAction)blockCallBack
- {
- [self showArrayUsingBlock:^(NSArray *array) {
- _outputLabel.text = array[1];
- }];
- }
IOS回调机制——代理,通知中心以及Block相关推荐
- iOS开发之通知中心(NSNotificationCenter)
前言 面向对象的设计思想是把行为方法封装到每一个对象中,以用来增加代码的复用性.正是这种分散封装,增加了对象之间的相互关联,总是有很多的对象需要彼此了解以及相互操作! 一个简单示例说明这种交互产生的对 ...
- mac android通知中心,少数派一周快读:iOS 8 输入法大比拼,升级 Mac 新系统的 6 项准备,如何保持 Android 通知栏整洁...
又到少数派一周快读的时间,上周我们迎来了苹果与谷歌两大豪门的新品发布,看来未来的移动互联网市场上两强相争的局面将会持续下去.新系统新特性即将上线,我们也一起来盘点一下上周最热和最值得推荐的内容吧. 上 ...
- WWDC 2014 Session笔记 - iOS 通知中心扩展制作入门
转自:http://onevcat.com/2014/08/notification-today-widget/ 总览 扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个 ...
- iOS 通知中心扩展制作入门
from:http://onevcat.com/2014/08/notification-today-widget/ 扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个非 ...
- iOS开发--iOS通知中心扩展制作入门(iOS Extensions)
个人笔记: 通知中心扩展,相当于一个特殊的独立的App存在.他和主App之间通讯可以通过OpenURL来实现.而在通知中心内部,像App一样,该咋样还是咋样(如异步网络请求, 自动布局等). 之所以 ...
- IOS中通知中心(NSNotificationCenter)的使用总结
IOS中通知中心NSNotificationCenter应用总结 一.了解几个相关的类 1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象 ...
- iOS 通知中心(NSNotificationCenter)
NSNotificationCenter 在这里第一步和第二步的顺序可以互换,一般楼主我喜欢先在需要发送消息的页面发送消息,然后再在需要监听的页面注册监听.要注意的是不管是通知中心还是KVO都需要在页 ...
- java 异步通知_Java 异步回调机制实例解析
什么是回调?今天傻傻地截了张图问了下,然后被陈大牛回答道"就一个回调-".此时千万个草泥马飞奔而过 哈哈,看着源码,享受着这种回调在代码上的作用,真是美哉.不妨总结总结. 一.什么 ...
- iOS8 通知中心扩展制作入门
总览 扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个非常大的功能点,开发者可以通过系统提供给我们的扩展接入点 (Extension point) 来为系统特定的服务提 ...
- Nordic系列芯片讲解九 (BLE事件回调机制解析)
BLE事件回调机制解析 nRF5 SDK从版本14开始,对事件回调机制做了更新,引入了观察者模式,以解耦不同BLE Layer对BLE事件的回调函数. 实现这套机制用到了Flash的段(Section ...
最新文章
- IDEA配置GitHub报错GitHub Invalid authentication data.404 Not Found-Not Found
- 多线程的两种实现方式和区别?
- numpy(2)-非齐次线性方程组求解
- python函数(二)
- 利用局域网测试仪进行网络性能测试
- 大数据之Elasticsearch教程
- Transformer 杀疯了,图像去雨、人脸幻构、风格迁移、语义分割等通通上分
- oracle环境变量怎么配,oracle环境变量配置-Oracle
- mysql 格式化时间_每天一个常用MySQL函数-from_unixtime等
- cmake mysql 参数_MySQL cmake编译时这些参数是什么意思?-问答-阿里云开发者社区-阿里云...
- 荐号 | “看一看”中“偷”来的很棒的公众号
- 微信小程序内容组件图标 icon
- 基于java的oa协同办公系统_基于java的OA系统设计 毕业论文.doc
- mysql 裸设备_什么叫做裸设备
- 继电器控制电路原理解析说明
- 这五个数据分析师技巧你一定要知道!
- 从数据备份恢复来看,iCloud和iTunes到底有什么区别?
- 【Zeekr_Tech】汽车软件敏捷开发和分支管理
- 类中static、const、readonly、partial修饰符
- 去IOE运动-正在路上