ios 开发 OC编程 类的扩展 协议 延展和 类目

i

//

//  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


****************************************************************************************协议的创建全过程
posted @ 2015-11-08 14:12  挽月细数风流  阅读(178)  评论(0编辑  收藏  举报