写协议的流程

作者: 不高冷的龙拾柒 | 来源:发表于2016-07-16 12:20 被阅读0次

//

//  Man.h

//  协议

//

//  Created by 郭宝 on 16/7/16.

//  Copyright © 2016年 郭宝. All rights reserved.

//

#import <Foundation/Foundation.h>

// setp1.规定协议内容

@protocol MakeLove <NSObject>

// 必需实现的方法

@required

// 买套

- (NSString *)buyCondoms:(NSString *)money;

// 可选择实现的方法

- (void) giveMoney;

@end

@interface Man : NSObject

// 委托方的写法

// step2设定委托方(有需求的人)

@property (nonatomic, weak) id delegate;

// 查看微信时

- (void)seeWeChat;

@end

//

//  Man.m

//  协议

//

//  Created by 郭宝 on 16/7/16.

//  Copyright © 2016年 郭宝. All rights reserved.

//

#import "Man.h"

@implementation Man

- (void)seeWeChat {

// step3.让代理人, 去执行协议方法

// 代理人可能没有实现协议方法

// 判断: 判断代理人存不存在 & 判断代理人能否响应对应的协议方法, 满足上述两则条件, 则执行

if (self.delegate != nil && [self.delegate respondsToSelector:@selector(buyCondoms:)]) {

NSString  *Condoms = [self.delegate buyCondoms:@"40元"];

NSLog(@"%@", Condoms);

}

}

@end

//

//  Woman.h

//  协议

//

//  Created by 郭宝 on 16/7/16.// 

 Copyright © 2016年 郭宝. All rights reserved.

//

#import <Foundation/Foundation.h>

#import "Man.h"

// step4.签订协议, 得到协议内容

@interface Woman : NSObject <MakeLove>

@end

//

//  Woman.m

//  协议

//

//  Created by 郭宝 on 16/7/16.

//  Copyright © 2016年 郭宝. All rights reserved.

//

#import "Woman.h"

@implementation Woman

// step5.实现协议方法

- (NSString *)buyCondoms:(NSString *)money {

NSLog(@"%@", money);

// 花钱得到Condoms

return @"成功买到了durex";

}

@end

//

//  main.m

//  协议

//

//  Created by 郭宝 on 16/7/16.

//  Copyright © 2016年 郭宝. All rights reserved.

//#import <Foundation/Foundation.h>

#import "Man.h"

#import "Woman.h"

int main(int argc, const char * argv[]) {

// 代理delegate设计模式

// 举例:一个man通过微信让一个woman买一盒duress来MakeLove

// 通过打印结果可以看出成功将Woman的@"成功买到杜蕾斯"传值给了Man.

Man *boyStudent = [[Man alloc] init];

Woman *girlStudent = [[Woman alloc] init];

// step6.设定代理人

boyStudent.delegate = girlStudent;

[boyStudent seeWeChat];

return 0;

}

相关文章

  • 写协议的流程

    // // Man.h // 协议 // // Created by 郭宝 on 16/7/16. // Copy...

  • 计算机网络01 - 应用层

    目录 HTTP 协议... 1. HTTP 协议 HTTP 请求流程图HTTP请求流程图 HTTP 的特点 HTT...

  • 05 Spring Social开发第三方登陆(未完)

    OAuth协议OAuth协议解决什么问题OAuth协议的角色OAuth协议的运行流程OAuth授权模式小结 Spr...

  • 000_开篇词

    宏观视角下的浏览器 Chrome架构 TCP协议 HTTP请求流程 导航流程 渲染流程(上) 渲染流程(下) 浏览...

  • 十二天:接口测试入门

    http协议 xml json 接口测试流程

  • HTTP协议以及HTTP请求中8种请求方法

    什么是协议? 协议,是指通信的双方,在通信流程或内容格式上,共同遵守的标准。 什么是http协议? http协议,...

  • CAS协议流程

    所以一般的设计模式,可以设置一个主页App,然后通过单点登陆代理来访问其它App。现在要讨论的重点就是:1) 能否...

  • HTTP协议流程

    简单描述HTTP协议流程,仅供自己学习,有时间会逐渐深入添加 解析地址 在浏览器中输入地址后,浏览器会先解析域名,...

  • HTTPS协议流程

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采...

  • 推流直播技术

    推流流程使用rtmp协议(其他协议也类似)推流的大体流程如下: 通过系统相机捕获视频及声音,该美颜的美颜,该滤镜的...

网友评论

    本文标题:写协议的流程

    本文链接:https://www.haomeiwen.com/subject/vipyjttx.html