ios之协议传值(Protocol)
来源:互联网 发布:2017年6月进出口数据 编辑:程序博客网 时间:2024/06/06 00:58
协议:
协议是一个方法签名的列表,在其中可以定义若干个方法。根据配置,遵守该协议的类会去实现这个协议中规定的若干个方法。
代理:
在B类中遵循协议:
在B类中实现协议中必须实现的方法:
设置代理人:
在A类中定义一个B类对象,调用协议中的方法,就可以实现类与类之间的传值了。
协议是一个方法签名的列表,在其中可以定义若干个方法。根据配置,遵守该协议的类会去实现这个协议中规定的若干个方法。
代理:
代理是一个概念,很难用一个名词去定义(如我们可以说协议其实就是一个方法列表)。它更像是一种关系,我要做某一个事情,但我自己不想去做这件事,我委托其他人帮我去做这件事。这个时候,这位其他人就是我的代理。
protocol是一种语法,它提供了一个很方便的、实现delegate模式的机会。
在A类中定义protocol,如下:#import <UIKit/UIKit.h>@protocol SECProtocol;@interface BossView : UIView@property(nonatomic,assign) id<SECProtocol> delegate;//协议用assign,id<遵守协议的指针类型的对象> 变量名(也称为代理人)@end//为协议添加内容@protocol SECProtocol <NSObject>@protocol @required //必须实现,默认项-(void)playGame;-(void)print;@optional //非必须实现-(void)cet4; @end
在B类中遵循协议:
@interface RootViewController : UIViewController<SECProtocol> //表示遵循协议(区别于实现协议,不要记混)
在B类中实现协议中必须实现的方法:
-(void)playGame{ NSLog(@"%s",__func__);}-(void)print{ NSLog(@"%s",__func__);}
设置代理人:
BossView *Boss = [[BossView alloc] initWithFrame:CGRectMake(0, 20, 320, 460)]; [Boss setBackgroundColor:[UIColor blueColor]]; Boss.delegate = self; //设置代理人 [self.view addSubview:Boss]; [Boss release]; [self sayHello];
在A类中定义一个B类对象,调用协议中的方法,就可以实现类与类之间的传值了。
0 0
- ios之协议传值(Protocol)
- iOS开发之 协议 protocol
- IOS学习之协议protocol - 杂七杂八
- iOS之协议(protocol)的使用
- iOS 之 协议(protocol)的学习
- ios 正式协议protocol
- iOS协议Protocol
- Protocol 协议总结 - iOS
- iOS protocol 协议
- iOS Protocol 协议
- OC之【@protocol协议】
- OC之Protocol (协议)
- iOS从入门到精通之 :协议(protocol)
- IOS开发之——Protocol协议的使用
- iOS Objective-C之-1:协议Protocol
- iOS开发之Protocol (协议) 和delegate(代理)
- 协议的用法 ios protocol
- 在ios中举个简单的protocol例子,关于两个类用协议方式传值。
- JD 1351 数组中只出现一次的数字
- 梦想天空分外蓝,实习结束总结
- uva 439 - Knight Moves
- ubuntu server 12 LTS 安装 trac 笔记
- TQ2440移植yaffs2文件系统基于linux 2.6.30.4
- ios之协议传值(Protocol)
- (十)泛型算法
- 一个经验法则
- cvCopy与cvCloneImage的区别
- 图论之Dijkstra算法求最短路径
- 2014.3.1
- Mat 的一些基本的初始化
- JAVA方法中的参数用final来修饰的原因
- 谷歌