协议
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];
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];
相关文章推荐
- DTM中Channel的顺序与Cfg中Module顺序不一致会不会影响V0通信?
- 类的扩展
- Hdu 1856(离散化+并查集)More is better
- hdu 2898 旋转 三维空间一点绕一轴旋转后坐标 几何
- 下来框取的被选中的项的值
- Fragment间的通信
- Hat’s Words hdu-1247
- poj解题报告——1458
- bzoj2783
- 用两个栈实现一个队列
- POJ 3076 Sudoku
- 最简单的基于FFmpeg的移动端例子:Android 视频解码器
- AsssetBunlder打包
- NSURLErrorDomain错误码
- The YCbCr to RGB formula
- Objective-C学习笔记(二十四)——成员变量的访问修饰符学习
- PAT (Advanced Level) 1035. Password (20) 简单的字符串替换
- POJ 3074 Sudoku
- Convolutional Patch Networks with Spatial Prior for Road Detection and Urban Scene Understanding
- 关于IOS9