案例 去北京….
Person.h
#import <Foundation/Foundation.h>
#import "ZaiRenProtocol.h"
@interface Person : NSObject
@property(nonatomic,copy)NSString *name;
@property(nonatomic,strong)id<ZaiRenProtocol> trafficTool;
- (void)goToBeiJing;
@end
Person.m
#import "Person.h"
@implementation Person
- (void)goToBeiJing
{
NSLog(@"走喽");
[self.trafficTool zaiRen];
}
@end
Car.h
#import <Foundation/Foundation.h>
#import "ZaiRenProtocol.h"
@interface Car : NSObject <ZaiRenProtocol>
@end
Car.m
#import "Car.h"
@implementation Car
- (void)zaiRen
{
NSLog(@"小汽车晃晃悠悠的前进了");
}
@end
Horse.h
#import <Foundation/Foundation.h>
#import "ZaiRenProtocol.h"
@interface Horse : NSObject <ZaiRenProtocol>
@end
Horse.m
#import "Horse.h"
@implementation Horse
- (void)zaiRen
{
NSLog(@"不捉急,很快就到");
}
@end
ZaiRenProtocol.h
#import <Foundation/Foundation.h>
@protocol ZaiRenProtocol <NSObject>
- (void)zaiRen;
@end
main.m
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Car.h"
#import "Horse.h"
int main(int argc, const char * argv[])
{
Horse *horse = [Horse new];
Car *car = [Car new];
Person *p1 = [Person new];
p1.trafficTool = car;
[p1 goToBeiJing];
p1.trafficTool = horse;
[p1 goToBeiJing];
return 0;
}
效果: