文档介绍:iOS代理模式
概述
代理模式是一种消息传递方式,一个完整的代理模式包括:委托对象、代理对象和协议。
名词解释
协议:用来指定代理双方可以做什么,必须做什么。
委托对象:根据协议指定代理对象需要完成的事,即调用协议中的iOS代理模式
概述
代理模式是一种消息传递方式,一个完整的代理模式包括:委托对象、代理对象和协议。
名词解释
协议:用来指定代理双方可以做什么,必须做什么。
委托对象:根据协议指定代理对象需要完成的事,即调用协议中的方法。
代理对象:根据协议实现委托方需要完成的事,即实现协议中的方法。
「Protocol-协议
从上图中我们可以看到三方之间的关系,在实际应用中通过协议来规定代理双方的行为,协议中的内容一般都是方法列表,当然也可以定义属性,我会在后续文章中顺带讲一下协议中定义属性。
协议是公共的定义,如果只是某个类使用,我们常做的就是写在某个类中。如果是多个类都是用同一个协议,建议创建一个Protocol文件,在这个文件中定义协议。遵循的协议可以被继承,例如我们常用的UlTableView,由于继承自UlScrollView的缘故,所以也将UlScrollViewDelegate继承了过来,我们可以通过代理方法获取UlTableView偏移量等状态参数。
协议只能定义公用的一套接口,类似于一个约束代理双方的作用。但不能提供具体的实现方法,实现方法需要代理对象去实现。协议可以继承其他协议,并且可以继承多个协议,在iOS中对象是不支持多继承的,而协议可以多继承。
***@interfaceTMGameViewControllerNew()<ILVLiveAVListener,ILVLivelMListener,AVAudioPlayerDelegate,TMGameViewModelDelegate,TMGameShowViewProcotol,NSInteger_chargeSource;
BOOL_firstComeRoom;
BOOL」irstGuideCamera;
}
2•委托对象
if([:***@selector(userLoginWithUsername:password:)]){
//调用代理对象的登录方法,代理对象去实现登录方法
[::];
}
wWWr,V.\'iW
wJhkSShSfiwwwwi:k;hS:S:SRJSkSSwkwSxSs?
3•代理对象
=[[TMGameViewalloc]initWithFrame::selfviewModel:];=NO;
=self;
=self;