OC 协议和委托

来源:互联网 发布:淘宝卖飞机 编辑:程序博客网 时间:2024/05/16 15:49

//委托者

#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 = [superinit];

    if (self) {

        delegate1=[[Youalloc]init];

        delegate2 = [[Taalloc]init];

    }

    return self;

}

-(void)print{

    [delegate1weiZhu:@"哈哈哈"];

    [delegate1zhuFan:@"还煮饭了"];

    [delegate2weiZhu:@"哈哈哈"];

    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 = [[Mealloc]init];

        [me print];

    }

    return 0;

}






原创粉丝点击