美文网首页
协议是什么

协议是什么

作者: 猪队友小L | 来源:发表于2017-08-18 17:01 被阅读1次

@protocol是什么

OC里面叫协议,JAVA里面与其对应的叫接口,C++里面叫抽象类

一种只定义函数名,不具体写实现,由不同的实例化对象(代理)执行不同内容的方法

protocol分析

    @protocol protocolName <NSObject>
    @required
    - (void)requiredProtocolFunction;
    @optional
    - (void)optionalProtocolFunction;
    @end

delegate分析

delegate(代理),就是要具体实现方法内容的实例化对象,通常被声明为一个id类型的遵循某个protocol的指针,可以为任意名字,但是一般都叫delegate

@interface className : NSObject
@property (nonatomic, weak) id<protocolName> delegate;
@end

被该指针指向的类也需要遵循同样的协议className.delegate = class<protocolName>

protocol执行时的检查(坑坑坑!!!)

protocol执行时一定要进行检查,不然如果delegate不存在或者具体协议函数没实现,那么就Crash!!!

//先问代理在不在,再问代理是否遵循某协议,然后去干
if (self.delegate && [self.delegate conformsToProtocol:@protocol(protocolName)]) {
    [self.delegate doProtocolFunction];
}
//先问代理在不在,再问代理存在不存在某个实现,然后去干
if (self.delegate && [self.delegate respondsToSelector:@selector(protocolFunction)]) {
    [self.delegate doProtocolFunction];
}

相关文章

  • HTTP协议

    HTTP协议 1.HTTP协议是什么? HTTP协议是Hyper Text Transfer Protocol(超...

  • Http协议详解

    1、Http协议是什么? Http协议:超文本传输协议(全称 Hyper Text Transfer Protoc...

  • 协议是什么

    @protocol是什么 OC里面叫协议,JAVA里面与其对应的叫接口,C++里面叫抽象类 一种只定义函数名,不具...

  • RESTFUL知识书目录

    RESTFUL是什么 为什么会出现RESTFUL http协议 GET http协议 POST http协议 PU...

  • HTTPS协议的原理和与HTTP协议的区别

    HTTPS协议是什么 https协议比http协议多了一个s,字面意思上s=secure(安全)。它跟http协议...

  • 我一脸懵逼,求求你告诉我IPFS到底是个什么鬼?

    IPFS到底是什么?是协议,是网络,还是系统? IPFS是一个数据数据传输协议。 如果你理解HTTP协议是什么,那...

  • 测试工程师技术面问题汇总

    协议类问题 Q:TCP协议和UDP协议的区别是什么?A:TCP协议和UDP协议都是传输层两个非常重要的协议,它们之...

  • 一篇文章带你认识HTTP协议

    HTTP概述 HTTP协议是什么 HTTP协议(HyperText Transfer Protocol),又称超文...

  • iOS多文件上传

    HTTP协议是TCP/IP协议之上应用层的协议。 至于WebSocket协议是什么鬼可以看这篇知乎。WebSock...

  • iOS基础 | Objective-C 协议

    今天我们来学习Objectivc-C中的协议。学习主要分三部分: 协议是什么? 协议的作用是什么,可以用它实现什么...

网友评论

      本文标题:协议是什么

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