代理的简单使用
一、定义协议
//===============================================
// 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;
}
//==========================================================
一、定义协议
//===============================================
// 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;
}
//==========================================================