OC_协议代理

来源:互联网 发布:知乎 西安文都考研 编辑:程序博客网 时间:2024/05/22 10:38
新建两个类Boy,GirlGirl.h#import <Foundation/Foundation.h>#warning 1.协议声明.@protocol MarryMeDelegate <NSObject>@required   // 必须要做的.- (void)makeMoney;@optional   // 可选的.- (void)cook;- (void)careChild;- (void)washCloths;@end@interface Girl : NSObject#warning 2.声明代理人.@property(nonatomic, assign) id<MarryMeDelegate> myDelegate;   // 奴隶- (void)getMessage:(NSString *)string;@endGirl.m#import "Gril.h"@implementation Gril- (void)getMessage:(NSString *)string {#warning 3.代理人调用协议方法.    [self.myDelegate makeMoney];}@endBoy.h#import <Foundation/Foundation.h>#import "Gril.h"#warning 4.签订协议@interface Boy : NSObject<MarryMeDelegate>- (void)marryMe:(NSString *)content;@endBoy.m#import "Boy.h"@implementation Boy- (void)marryMe:(NSString *)content {    Girl *girl = [Girl alloc] init];    [girl getMessage: content];#warning 5.设置代理人.    girl.myDelegate = self;}#warning 6.实现协议方法.- (void)makeMoney {    NSLog(@"老老实实挣钱,否则就一个,死!~");}@endmain.m#import <Foundation/Foundation.h>#import "Boy.h"#import "Gril.h"int main(int argc, const char * argv[]) {    @autoreleasepool {    Boy *messi = [[Boy alloc] init];    [messi marryMe:@"嫁给我吧"];    }    return 0;}
0 0
原创粉丝点击