您的位置:首页 > 其它

协议

2015-07-24 19:05 288 查看
1.声明

2.设置代理人

//
// Girl.h
// OC_07类的扩展
//
// Created by dllo on 15/7/24.
// Copyright (c) 2015年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

// 1.声明一份协议
// protocol协议的关键词
@protocol Marry <NSObject>

// 协议内容
// 协议方法的声明
@required // 必须实现的方法, 默认的是这个方法
- (void)makeMoney;
@optional // 是可以选择执行的方法
- (void)cook;
@end

@interface Girl : NSObject
// 2.设置代理人的属性
@property(nonatomic, assign)id<Marry>delegate;

// 两个人结婚之后,协议才正式的生效
- (void)getMarry;

@end


3.让代理人去执行协议的方法

//
// Girl.m
// OC_07类的扩展
//
// Created by dllo on 15/7/24.
// Copyright (c) 2015年 dllo. All rights reserved.
//

#import "Girl.h"

@implementation Girl

- (void)getMarry
{
// 3.让代理人去执行协议里的方法
[self.delegate makeMoney];
}
@end


4.代理人的签协议

//
// Boy.h
// OC_07类的扩展
//
// Created by dllo on 15/7/24.
// Copyright (c) 2015年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Girl.h"

// 4.引完头文件之后,boy需要签订协议
@interface Boy : NSObject<Marry>

@end

5.代理人实现协议

//
// Boy.m
// OC_07类的扩展
//
// Created by dllo on 15/7/24.
// Copyright (c) 2015年 dllo. All rights reserved.
//

#import "Boy.h"

@implementation Boy
// 5.实现协议方法makeMoney
- (void)makeMoney{
NSLog(@"板砖");
}
- (void)cook{
NSLog(@"!");
}
@end

6.设置代理人

    //
创建俩小人
   
Boy *adam = [[Boy
alloc]init];
   
Girl *lilith = [[Girl
alloc]init];

    // 6.设置代理人
    lilith.delegate = adam;
    [lilith
getMarry];
   
Man *god = [[Man
alloc]init];
    lilith.delegate = god;
    [lilith
getMarry];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: