代理的简单使用

代理的简单使用


一、定义协议


//===============================================
//  buyDelegate.h
//  定义代理协议
//


#import <Foundation/Foundation.h>
@protocol buyDelegate <NSObject>


//返回电脑型号
-(NSString *)computerID;


//返回电脑价钱
-(double)computerPrice;


@end
//==============================================




二、代理实现协议中的方法


//==============================================
//  guide.h
//导购遵循代理协议


#import <Foundation/Foundation.h>
#import "buyDelegate.h"
@interface guide : NSObject<buyDelegate>


@end


//=============================================
//  guide.m
//导购实现代理协议中的某些方法
//
#import <Foundation/Foundation.h>
#import "guide.h"


@implementation guide
//返回电脑型号
-(NSString *)computerID
{
    //代理去执行,返回结果
    return @"lenovo B460";
}


//返回电脑价钱
-(double)computerPrice
{
    return 3500;
}


@end
//==============================================


三、对象去调用代理


//==============================================
//  consumer.h
//消费费者方法购买电脑,遵循代理协议
//定义消费者属性代理


#import <Foundation/Foundation.h>
#import "buyDelegate.h"
//consumer声明
@interface consumer : NSObject
//consumers属性的声明,consumers属性是代理对象
@property(nonatomic, weak)id<buyDelegate> delegate;
-(void)buyComputer;
@end
//=================================================


//  consumer.m
//消费者购买电脑的方法实现
//


#import "consumer.h"


@implementation consumer


//客户去买电脑
-(void)buyComputer
{
    //让导购(代理)去买电脑
    NSString *comId = [_delegate computerID];
    double price = [_delegate computerPrice];
    NSLog(@"电脑的型号是:%@,价钱是:%f", comId, price);
}
@end
//=======================================================


四、mian方法


//=======================================================
//  main.m
//代理的简单使用
//客户买电脑,找导购员代理


#import <Foundation/Foundation.h>
#import "consumer.h"
#import "guide.h"
int main()
{
    //消费者
    consumer *c = [[consumer alloc] init];
    //代理
    guide *g = [[guide alloc] init];
    
    //设置消费者的代理
    c.delegate = g;
    //消费者购买电脑
    [c buyComputer];
    return 0;
}
//==========================================================
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值