//委托者
#import <Foundation/Foundation.h>
#import "MyProtocol.h"
@interface Me : NSObject
{
id <MyProtocol> delegate1;
id <MyProtocol> delegate2;
}
@property(strong,nonatomic) id<MyProtocol> delegate1;
@property(strong,nonatomic) id<MyProtocol> delegate2;
-(void)print;
@end
#import "Me.h"
#import "You.h"
#import "Ta.h"
@implementation Me
@synthesize delegate1,delegate2;
- (instancetype)init
{
self = [super init];
if (self) {
delegate1=[[You alloc]init];
delegate2 = [[Ta alloc]init];
}
return self;
}
-(void)print{
[delegate1 weiZhu:@"哈哈哈"];
[delegate1 zhuFan:@"还煮饭了"];
[delegate2 weiZhu:@"哈哈哈"];
NSLog(@"print");
}
@end
//实现方
#import <Foundation/Foundation.h>
#import "MyProtocol.h"
@interface You : NSObject<MyProtocol>
@end
#import "You.h"
@implementation You
- (void)weiZhu:(NSString *)string {
NSLog(@"我喂猪了,%@",string);
}
-(void)zhuFan:(NSString*)string{
NSLog(@"我煮饭了,%@",string);
}
@end
//协议
#import <Foundation/Foundation.h>
@protocol MyProtocol <NSObject>
@required
-(void)weiZhu:(NSString*)string;
@optional
-(void)zhuFan:(NSString*)string;
@end
//Main.h
#import <Foundation/Foundation.h>
#import "Me.h"
#import "You.h"
#import "MyProtocol.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
//NSLog(@"Hello, World!");
Me *me = [[Me alloc]init];
[me print];
}
return 0;
}