delegate的使用总结
需要在A类中修改B类的方法
ClassA.h
@protocol ClassADelegate //在类A中声明并且定义一个代理
-(void)ChangeObjectFromClassB;
@end
@interface ClassA: NSObject {
id<ClassADelegate> delegate;
}
@property (nonatomic,assign) id <ClassADelegate> delegate;
@end
ClassA.m
@implementation ClassA
@synthesize delegate;
...do something
-(void)method
{
//do something
//在类A中主动调用代理方法(方法在类B中重写)
[self.delegate ChangeObjectFromClassB];
}
@end
--------------------------------------------------------------
ClassB.h
@Interface ClassB:NSObject <ClassADelegate> { //遵守类A的协议
}
@end
ClassB.m
#import ClassA
@implementation ClassB
...do something
-(void)method
{ //生成类A的实例,并将类B代理给A
ClassA *objA = [[ClassA alloc] init];
objA.delegate = self;
}
//在B类中重写该代理函数
-(void)ChangeObjectFromClassB
{
//do something
}
1、谁遵循协议,就在谁里面实现方法,如class B
2、谁需要代理,就在谁里面声明代理 如class A
3、在需要完成功能的地方用代理调用该方法
4、声明代理的指向,在实现方法的类里面。
delegate的使用总结相关推荐
- 理解委托(delegate)及为什么要使用委托
委托:是一种定义方法签名的类型. 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联. 您可以通过委托实例调用方法. 上述为官方说法,理解起来比较难,举个生活中的例子: 某人有三子,让他们各 ...
- swift中delegate与block的反向传值
swift.jpg 入门级 此处只简单举例并不深究,深究我也深究不来.对于初学者来说delegate或block都不是一下子能理解的,所以我的建议和体会就是,理不理解咱先不说,我先把这个格式记住,对就 ...
- 在请求完成后回调delegate的方法。然而回调时经常遇到这种情况:delegate已经被释放...
最近的项目遇到了网络请求,需要在请求完成后回调delegate的方法.然而回调时经常遇到这种情况:delegate已经被释放,这时调用其方法则会引起crash. objc的runtime中有两种判断类 ...
- 异步使用委托delegate --- BeginInvoke和EndInvoke方法
当我们定义一个委托的时候,一般语言运行时会自动帮委托定义BeginInvoke 和 EndInvoke两个方法,这两个方法的作用是可以异步调用委托. 方法BeginInvoke有两个参数: Async ...
- 对delegate进行扩展 打造通用的计时完成方法
连接数据库是程序员经常要做的事情, 通常情况下, 需要连接SQL Server中哪个数据库是已知的, 用户在输入SQL Server的服务器IP.用户名.密码和数据库名字后, 如果所有信息输入正确, ...
- Swift - 委托(delegate)的介绍,及使用样例
1,委托的说明 委托(delegate)是Cocoa的一个术语,表示将一个对象的部分功能转交给另一个对象. 比如对象A希望对象B知道将要发生或已经发生某件事情,对象A可以把对象B的引用存为一个实例变量 ...
- C#中Action与delegate、EventHandler的差异
Action是一个泛型的委托,其内部即使用delegate去实现,当普通的delegate定义的参数与Action个数.类型一致时,两者实现的功能是一样的.只是Action的方式更加简洁.规范.如下: ...
- 【转】iOS开发-Protocol协议及委托代理(Delegate)传值
原文网址:http://www.cnblogs.com/GarveyCalvin/p/4210828.html 前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来 ...
- c# 带返回值的action_C#知识点讲解之C#delegate、event、Action、EventHandler的使用和区别...
今天来讲一讲<C#delegate.event.Action.EventHandler的使用和区别> 目录 所以,event应运而生 所以,EventHandler应运而生 所以,Acti ...
- iOS视图控制器之间delegate传值
2019独角兽企业重金招聘Python工程师标准>>> // ** *为了从ViewControllerB往回传值到ViewControllerA,我们需要使用协议(Protocol ...
最新文章
- Redis 笔记(09)— 过期时间 expire(设置、查询、取消过期时间)
- 【leetcode】86. Partition List
- SQLSERVER执行计划详解
- linux磁盘、分区、设备简单介绍
- Linux学习总结(65)——Linux 服务器安全强化的七个步骤
- 传感器怎么获取障碍物的宽度信息_机器人感知 -- 测距传感器
- CCCC-GPLT L1-040. 最佳情侣身高差 团体程序设计天梯赛
- Delphi7调用dll(图文教程)2021最新
- 04 数据清洗与准备
- 基于SSM的网上购物系统
- java实现萤石云截图保存上传到ftp功能
- 最近很多人问我:saiku下载不下来
- Chrome——截图插件篇
- 【网络爬虫】实现有道翻译提取
- asciinema终端录屏神器使用及过坑
- Chrome 下IndexedDB 本地存储
- Unable to prepare *** iPhone for development
- 2020年计算机网络管理员赛项竞赛试题(5)
- Spring和SpringBoot中针对单一接口多种实现的支持
- 浙外国际学院副院长莅临实在智能,共探产学研合作新方向