ios之协议传值(Protocol)

协议:

协议是一个方法签名的列表,在其中可以定义若干个方法。根据配置,遵守该协议的类会去实现这个协议中规定的若干个方法。

代理:

代理是一个概念,很难用一个名词去定义(如我们可以说协议其实就是一个方法列表)。它更像是一种关系,我要做某一个事情,但我自己不想去做这件事,我委托其他人帮我去做这件事。这个时候,这位其他人就是我的代理。

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值