iOS-代理

1、协议是一组通讯协议,一般用作两个类之间的通信。

2、协议声明了一组所有类对象都可以实现的接口。

3、协议不是类,用@protocol关键字声明一个协议。

4、与协议有关的两个对象,代理者和委托者。

5、代理,实现协议的某个方法,相当于实现这个协议。

6、委托,用自己的方法,指定要实现协议方法的对象(代理),代理来实现对应的方法。

时间: 2024-10-11 23:29:44

iOS-代理的相关文章

iOS代理模式

iOS代理模式的简单理解:当一个对象无法直接获取到另一个对象的指针,又希望对那个变量进行一些操作时,可以使用代理模式. 代理主要由三部分组成: (1)协议:用来指定代理双方可以做什么,必须做什么. (2)代理:根据指定的协议,完成委托方需要实现的功能. (3)委托:根据指定的协议,指定代理去完成什么功能. 代理使用步骤 1.申明一个协议  (这个写在需要被获取的对象里面,也可以单独写一个类) @protocol TextDelegate -(void)deliverFirsttext:(NSSt

你真的了解iOS代理设计模式吗?

OS中消息传递方式 在iOS中有很多种消息传递方式,这里先简单介绍一下各种消息传递方式. 通知:在iOS中由通知中心进行消息接收和消息广播,是一种一对多的消息传递方式. 代理:是一种通用的设计模式,iOS中对代理支持的很好,由代理对象.委托者.协议三部分组成. block:iOS4.0中引入的一种回调方法,可以将回调处理代码直接写在block代码块中,看起来逻辑清晰代码整齐. target action:通过将对象传递到另一个类中,在另一个类中将该对象当做target的方式,来调用该对象方法,从

iOS 代理反向传值

在上篇博客 iOS代理协议 中,侧重解析了委托代理协议的概念等,本文将侧重于它们在开发中的应用. 假如我们有一个需求如下:界面A上面有一个button.一个label.从界面A跳转到界面B,在界面B的输入框中输入字符串,在界面A的label上显示.这是一个典型的反向传值的例子.这个例子的核心是:"在界面B的输入框中输入字符串,在界面A的label上显示".也就是说:"界面B委托界面A显示字符串,页面A是界面B的代理".委托方向代理方反向传值. 那么我们该怎么用代理设

iOS 代理的具体使用

最近看了一个代理的使用文档,觉着写的很好,记录一下 1.     创建一个 delegate: 2.    委托者声明一个delegate: 3.    委托者调用delegate内的方法(method): 4.    被委托者设置delegate,以便被委托者调用: 5.    被委托者实现Delegate 所定义的方法. 1.1    第一步: 创建一个delegate 在 .h 文件中,  通过 @protocol 创建一个 delegate: @protocol CalculatorPr

IOS 代理的简单实现

原文 http://www.cnblogs.com/lovekarri/archive/2012/03/04/2379197.html 昨天做了一个demo,用到了简单代理. delegate是ios编程的一种设计模式.我们可以用这个设计模式来让单继承的objective-c类表现出它父类之外类的特征.昨天这个代理实现如下: 类GifView是继承自UIView的,它加载在RootViewController上来通过一个Timer播放动画.同时,RootViewController需要知道Tim

iOS代理一对一秒变一对多--RxSwift delegateProxy使用

委托代理(delegate) iOS 开发中十分常见.不管是使用系统自带的库,还是一些第三方组件时,我们总能看到 delegate 的身影.使用 delegate 可以实现代码的松耦合,减少代码复杂度.但如果我们项目中使用 RxSwift,那么原先的 delegate 方式与我们链式编程方式就不相称了. 解决办法就是将代理方法进行一层 Rx 封装,这样做不仅会减少许多不必要的工作(比如原先需要遵守不同的代理,并且要实现相应的代理方法),还会使得代码的聚合度更高,更加符合响应式编程的规范. 其实在

iOS 代理与通知,kvc和kvo的区别

通知 通知需要有一个通知中心:NSNotificationCenter,自定义通知的话需要给一个名字,然后监听. 优点:通知的发送者和接受者都不需要知道对方.可以指定接收通知的具体方法.通知名可以是任何字符串. 缺点:较键值观察(KVO)需要多点代码,在删掉前必须移除监听者. 协议 通过setDelegate来设置代理对象,最典型的例子是常用的TableView. 优点:支持它的类有详尽和具体信息. 缺点:该类必须支持委托.某一时间只能有一个委托连接到某一对象. KVO 的优点: 当有属性改变,

ios代理的使用,正向传值,逆向传值

#import <UIKit/UIKit.h> #import "SubViewController.h" @interface ViewController : UIViewController<SubViewControllerDelegate> @end #import "ViewController.h" @interface ViewController () { SubViewController *_subViewControl

IOS代理(初级)

协议的作用以及协议的用法 1.协议一般用作两个类之间的通信 2.协议声明了一组所有类对象都可以实现的借口 3.协议用@prltocol关键字声明 它本身不是类 4.参与协议的两个对象,代理者和委托者 5.代理,实现协议的某个方法,实现这个协议 6.委托,用自己的方法指定要实现协议方法的对象(代理),代理来实现对应的方法 [email protected]必须实现的方法  @optional---可以选择的方法  默认@required 例子: 这是一个简单的代理回调,包含传参 // 非正式协议

iOS代理02

代理阶段性小结 @required ->必须实现的方法 @optional  ->可选的实现方法-不强求实现-如果实现了能得到特殊的效果,如果不实现,也不影响程序的正确运行 能够增加控件的灵活度 1,遵守协议,预先定义好方法,不实践,具体的实现工作由代理负责 <控件的名字+DataSource> 定义的与数据有关的方法 <控件的名字+Delegate> 定义的与事件有关的方法,通常用来监听事件的 2,代理方法 1)方法名以控件名称开头(没有类前缀)->方便程序员编