//
// main.m
// 0C - 08 类的扩展
//
// Created by dllo on 15/11/4.
// Copyright (c) 2015年 dllo. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NSString+info.h"
#import "NSArray+info.h"
#import "cacl.h"
#import "Girl.h"
#import "Boy.h"
int main(int argc, const char * argv[]) {
//category 只添加方法不能够添加实例变量
// NSString *str = @"aaa";
// [str info];
// NSArray *Arr = [[NSArray alloc]init];
// [Arr info];
// cacl *p = [[cacl alloc]init];
// NSInteger ret = [p sorted3number:3 b:4 c:5];
// NSLog(@"%ld",ret);
//协议
#warning 1, 有一天蓝鸥来了一个美丽的女孩叫春儿(创建girl对象)
Girl *girl = [[Girl alloc]init];
# warning 4, 有个男孩一直暗恋春儿(创建boy对象)
Boy *boy = [[Boy alloc]init];
#warning 7, 男孩签了代理,变成了女孩协议的代理人(签代理)
girl.delegate = boy;
#warning 9 , 小平和春儿结婚了
[girl getMarriaged];
return 0;
}
//
// Boy.h
// 0C - 08 类的扩展
//
// Created by dllo on 15/11/4.
// Copyright (c) 2015年 dllo. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Girl.h"
#warning 6, 于是男孩签订了协议(签订协议)
@interface Boy : NSObject <MarriageDelegate>
- (void)makeMoney;
@end
//
// Boy.m
// 0C - 08 类的扩展
//
// Created by dllo on 15/11/4.
// Copyright (c) 2015年 dllo. All rights reserved.
//
#import "Boy.h"
@implementation Boy
#warning 5, 男孩发现满足女孩的条件(实现协议方法)
- (void)makeMoney
{
NSLog(@"确实有个岛");
}
@end
//
// Girl.h
// 0C - 08 类的扩展
//
// Created by dllo on 15/11/4.
// Copyright (c) 2015年 dllo. All rights reserved.
//
#import <Foundation/Foundation.h>
//协议首字母大写
@protocol MarriageDelegate <NSObject>
#warning 2, 女孩要征婚,拟订了一份协议(创建协议)
- (void)makeMoney;
@end
@interface Girl : NSObject
#warning 3, 女孩为应征者提供代理,满足条件的男孩可以签代理(创建代理)
@property (nonatomic, assign) id< MarriageDelegate> delegate;
@end
//
// Girl.m
// 0C - 08 类的扩展
//
// Created by dllo on 15/11/4.
// Copyright (c) 2015年 dllo. All rights reserved.
//
#import "Girl.h"
@implementation Girl
-(void)getMarriaged
{
#warning 8, 结婚前女孩验证了男孩的条件 (调用协议方法)
[self.delegate makeMoney];
}
@end