main.m文件
#import <Foundation/Foundation.h>
#import "Nanny.h"
#import "Child.h"
#import "Care.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// Nanny *nanny=[[Nanny alloc] init];
// Child *child=[[Child alloc] initWithClearValue:100 happyValue:100];
Nanny *n=[[Nanny alloc] init];
Child *c=[[Child alloc] initWithClearValue:100 happyValue:100];
c.delegate=n;
[[NSRunLoop currentRunLoop] run];
}
return 0;
}
#import <Foundation/Foundation.h>
#import "Care.h"
@class Nanny;
@interface Child : NSObject
{
NSInteger _clearValue;
NSInteger _happyValue;
}
@property NSInteger clearValue;
@property NSInteger happyValue;
//@property Nanny *nanny;
@property id <Care> delegate;
-(instancetype)initWithClearValue:(NSInteger)clearValue happyValue:(NSInteger)happyValue;
-(void)stop;
@end
#import "Child.h"
#import "Nanny.h"
@implementation Child
-(instancetype)initWithClearValue:(NSInteger)clearValue happyValue:(NSInteger)happyValue{
self=[super init];
if (self) {
_clearValue=clearValue;
_happyValue=happyValue;
NSTimer *timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeAction) userInfo:nil repeats:YES];
}
return self;
}
-(void)timeAction{
_clearValue--;
_happyValue--;
NSLog(@"%li",_clearValue);
NSLog(@"%li",_happyValue);
if (_clearValue==90) {
[self.delegate batheChild:self];
}
if (_happyValue==95) {
[self.delegate playChild:self];
}
}
-(void)stop{
}
@end
#import <Foundation/Foundation.h>
#import "Care.h"
@class Child;
@protocol NannyProtocol <NSObject>
-(void)batheChild:(Child *)child;
-(void)playChild:(Child*)child;
@end
@interface Nanny : NSObject<Care>
@end
#import "Nanny.h"
#import "Child.h"
@implementation Nanny
-(void)batheChild:(Child *)child{
NSLog(@"小孩洗白白");
child.clearValue = 100;
}
-(void)playChild:(Child*)child{
NSLog(@"小孩开心");
child.happyValue = 100;
}
@end
/
#import <Foundation/Foundation.h>
@class Child;
@protocol Care <NSObject>
-(void)batheChild:(Child *)child;
-(void)playChild:(Child*)child;
@end