Objective-C协议初识

 1 #import <Foundation/Foundation.h>
 2 #import "IOSProgrammer.h"
 3 #import "JavaCodingMonkey.h"
 4 int main(int argc, const char * argv[]) {
 5     @autoreleasepool {
 6         JavaCodingMonkey * javaCodingMokey = [[JavaCodingMonkey alloc] init];
 7         [javaCodingMokey writeJavaCode];
 8         
 9         IOSProgrammer * iOSProgrammer = [[IOSProgrammer alloc] init];
10         [iOSProgrammer sleep];
11         [iOSProgrammer sing];
12         [iOSProgrammer playGame];        
13         [iOSProgrammer writeIOSCode];
14         
15         id<IOSProgrammerProtocol> staff = iOSProgrammer;
16         [staff writeIOSCode];
17         
18         id<IOSProgrammerProtocol> staff2 = javaCodingMokey;
19         [staff2 writeIOSCode];
20         
21         // id 类型的指针 遵守协议后 只能调用协议中的方法
22         
23         
24     }
25     return 0;
26 }
main.m
1 #import <Foundation/Foundation.h>
2 // @protocol 协议的名字 <NSObject>
3 @protocol IOSProgrammerProtocol <NSObject>
4 @required // 必须要实现的方法 默认 不实现会有警告
5 - (void)writeIOSCode;
6 @optional // 可选的方法 可以实现也可以不实现
7 - (void)playTaiji;
8 @end
IOSProgrammerProtocol.h
1 #import <Foundation/Foundation.h>
2 #import "IOSProgrammerProtocol.h"
3 @interface JavaCodingMonkey : NSObject<IOSProgrammerProtocol>
4 - (void)writeJavaCode;
5 @end
JavaCodingMonkey.h
 1 #import "JavaCodingMonkey.h"
 2 
 3 @implementation JavaCodingMonkey
 4 - (void)writeJavaCode {
 5     NSLog(@"write Java Code");
 6 }
 7 
 8 - (void)writeIOSCode {
 9     NSLog(@"write ISO code");
10 }
11 @end
JavaCodingMonkey.m
1 #import <Foundation/Foundation.h>
2 #import "IOSProgrammerProtocol.h"
3 
4 @interface IOSProgrammer : NSObject<IOSProgrammerProtocol>
5 - (void)sing;
6 - (void)sleep;
7 - (void)playGame;
8 @end
IOSProgrammer.h
 1 #import "IOSProgrammer.h"
 2 
 3 @implementation IOSProgrammer
 4 - (void)sing {
 5     NSLog(@"唱了一首 会喷火葫芦娃");
 6 }
 7 
 8 - (void)sleep {
 9     NSLog(@"好好的休息了一下");
10 }
11 
12 - (void)playGame {
13     NSLog(@"玩了一局英雄联盟");
14 }
15 
16 - (void)writeIOSCode {
17     NSLog(@"write iOS code");
18 }
19 @end
iOSProgrammer.m



 

三、协议的应用与功能

 

a.应用

1.(主要功能)规范接口(协议规范接口是强制的)

2.   实现委托代理机制(实现对象之间的通信)  代理设计模式

 

b.功能

  • 协议就是为了满足统一的数据传输
  • 一个类只能继承一个直接的父类,但可以实现多个接口(遵守多个协议),间接的实现了多继承.            

用协议实现多继承  可定义多个协议   类遵守多个协议   实现协议中的方法 间接实现多继承  

代码就不写了  很简单

转载于:https://www.cnblogs.com/gwkiOS/p/4944082.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值