main.matom
Man *laowang = [Man manWithName:@"haohao" gender:@"男" age:0]; laowang.age = 20; Woman *sister = [Woman womanWithName:@"奶茶" gender:@"女" age:0]; sister.age = 20; [laowang playGame]; [laowang makeMoney]; [sister shopping]; [sister fallInLove]; sister.delegare = laowang; [sister findFloodDirty];
Man.hspa
#import <Foundation/Foundation.h> #import "Woman.h" @interface Man : NSObject<MarryDelegate> @property (nonatomic, retain) NSString *name; @property (nonatomic, retain) NSString *gender; @property (nonatomic, assign) NSInteger age; - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age; + (id)manWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age; - (void)sayHi; - (void)playGame; - (void)makeMoney; @end
man.m代理
@implementation Man - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age { if (self = [super init]) { self.name = name; self.gender = gender; self.age = age; } return self; } + (id)manWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age { return [[Man alloc] initWithName:name gender:gender age:age]; } - (void)sayHi { NSLog(@"我是%@ ,性別%@,年齡%ld", self.name, self.gender, self.age); } - (void)playGame{ NSLog(@"小擼怡情,大擼傷身!"); } - (void)makeMoney{ NSLog(@"掙錢,給老婆花"); } #pragma ---marray - (void)cleanHouse { NSLog(@"結婚掃地,呵呵,賺到了"); } - (void)cooking{ NSLog(@"不敢相信,我作的飯這麼好吃"); } - (void)washFeet { NSLog(@"我說洗腳,你就相信"); } - (void)washCloth { NSLog(@"偶爾洗洗"); } //生孩子 - (void)giveBathToChild { NSLog(@"生孩子是兩我的的事"); } @end
Woman.hcode
@protocol MarryDelegate <NSObject> //掃地 - (void)cleanHouse; - (void)cooking; - (void)washFeet; - (void)washCloth; @optional //生孩子 - (void)giveBathToChild; @end @interface Woman : NSObject @property (nonatomic,retain) NSString *name; @property (nonatomic,retain) NSString *gender; @property (nonatomic,assign) NSInteger age; //代理屬性 //女人的丈夫,必須服從結婚協議 --- MarryDelegate @property (nonatomic,assign) id<MarryDelegate> delegare; - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age; + (id)womanWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age; - (void)sayHi; - (void)shopping; - (void)fallInLove; //地髒了 - (void)findFloodDirty; - (void)hungary; - (void)clothDirty; - (void)lonely; @end
woman.mblog
#import "Woman.h" @implementation Woman - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age { if (self = [super init]) { self.name = name; self.gender = gender; self.age = age; } return self; } + (id)womanWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age { return [[self alloc] initWithName:name gender:gender age:age]; } - (void)sayHi { NSLog(@"我是%@,%@的,芳齡%ld",self.name, self.gender, self.age); } - (void)shopping { NSLog(@"哎呀,衣服好漂亮!"); } - (void)fallInLove { NSLog(@"呵呵,又談戀愛了"); } //地髒了 - (void)findFloodDirty; { [self.delegare cleanHouse]; } - (void)hungary { [self.delegare cooking]; } - (void)clothDirty { [self.delegare washCloth]; } - (void)lonely { //判斷代理是否想去生 if ([self.delegare respondsToSelector:@selector(giveBathToChild)]) { [self.delegare giveBathToChild] ; } }