Protocol(协议)

Protocol在iOS中常见,协议是一套标准,类似于一个单子,上面写有一些要去完成的事,就看谁去签这个协议,如果谁签协议,那么它就要实现(完成)协议上要求完成的东西。

创建Protocol,command+N,选择objective-c file,然后file中写协议名字,file type选择protocol。即可生成一个.h文件。

所有的协议在这个.h文件中声明即可。

协议的声明,以@protocol开始,以@end结束,里边放一些需要实现的方法,这些方法,用@required(必须实现)和@optional(可实现,可不用实现)来修饰。

@protocol 协议名字 <NSObject>,NSObject放在<>号内,则不再是类,而是协议。

一个例子:

MyProtocol.h(写协议)

#import <Foundation/Foundation.h>

//声明协议

@protocol MyProtocol <NSObject>//放在<>里的NSObject已经不是一个类,而是一个协议

@required//要求必须的。必须实现

- (void)eating;

- (void)drinking;

@optional//可选。可选实现

- (void)shopping;

@end

Student.h(签协议)

#import <Foundation/Foundation.h>

#import "MyProtocol.h"//引入协议

@interface Student : NSObject<MyProtocol>//签协议

@end

Student.m(实现协议内容)

#import "Student.h"

@implementation Student

- (void)eating{

}

- (void)drinking{

}

- (void)shopping{

}

@end

main.m执行协议

#import <Foundation/Foundation.h>

#import "Student.h"

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

@autoreleasepool {

Student *s1 = [[Student alloc]init];

[s1 eating];

[s1 drinking];

[s1 shopping];

}

return 0;

}

转载于:https://www.cnblogs.com/DevinSMR/p/5118623.html

Protocol(协议)(二十)相关推荐

  1. 实验二十四、OSPF 在NBMA 环境中点到点的配置

    实验二十四.OSPF 在NBMA 环境中点到点的配置 一. 实验目的 1. 掌握NBMA 环境中点到点的配置 2. 理解NBMA 环境中点到点网络类型的意义 二. 应用环境 在帧中继的网络中,OSPF ...

  2. Shell脚本学习-阶段二十六-Web服务与端口

    文章目录-Shell阶段二十六-端口与服务对照表 前言 端口与Web服务对照表 简介 前言 端口与Web服务对照表 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口: ...

  3. 【转】iOS开发-Protocol协议及委托代理(Delegate)传值

    原文网址:http://www.cnblogs.com/GarveyCalvin/p/4210828.html 前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来 ...

  4. iOS开发-Protocol协议及委托代理(Delegate)传值

    前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替.Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法.也就是说,它只告诉你要做什么,但 ...

  5. VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池

    VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池 终端服务池是指由一台或多台微软终端服务器提供服务的桌面源组成的池.终端服务器桌面源可交付多个桌面.它具有以下特征: 1.终端 ...

  6. SAP UI5 初学者教程之二十四 - 如何使用 OData 数据模型试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  7. (二十二)深入浅出TCPIP之实战篇—用c++开发一个http服务器

    在当前的网络编程专栏前十几篇文章里,我已经说明了TCPIP常用的一些原理,那么接下来我将逐步进入到实战编程阶段: 本篇文章我将带大家用C++做一个http服务器.既然想实现一个http服务器,首先必须 ...

  8. Web Hacking 101 中文版 二十、漏洞报告

    二十.漏洞报告 作者:Peter Yaworski 译者:飞龙 协议:CC BY-NC-SA 4.0 所以这一天终于来了,你发现了你的第一个漏洞. 首先,恭喜你! 认真来讲,发现漏洞并不容易,但是有一 ...

  9. WCF技术剖析之二十八:自己动手获取元数据[附源代码下载]

    WCF技术剖析之二十八:自己动手获取元数据[附源代码下载] 原文:WCF技术剖析之二十八:自己动手获取元数据[附源代码下载] 元数据的发布方式决定了元数据的获取行为,WCF服务元数据架构体系通过Ser ...

  10. 二十四.基于机器学习的入侵检测和攻击识别——以KDD CUP99数据集为例

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Web渗透的第一步工作,涉及网站信息.域名信息.端口信息.敏感信息及指纹 ...

最新文章

  1. mybaties插件生成代码
  2. Python 初学者常犯的5个错误,布尔型竟是整型的子类
  3. 技术人生:如何成为一位优秀的程序员
  4. shell脚本中的命令替换
  5. POJ 1703 Find them, Catch them(并查集高级应用)
  6. 小米10的Android安全更新,MIUI 12首批更新名单被曝光,小米10系列优先上Android 11...
  7. 在S4 key user tool里创建Custom Logic的后台实现
  8. jQuery操作Table学习总结(转)
  9. bzoj 3262: 陌上花开(cdq分治)
  10. Python基础-序列化(json/pickle)
  11. mysql按笔划排序_Sql Server数据库汉字按字母、笔划、拼音首字母、排序
  12. nginx gzip
  13. 拼多多如何引流推广产品?拼多多新产品如何推广?
  14. [Mac] 安装软件时,出现 Waiting for other installations to complete
  15. 一幅真实的产品世界全景图,产品小白向上突破必看!
  16. python做网站怎么样_python能做网站吗
  17. 阿里云DataHub常见问题
  18. 麦咖啡未来三年将投资25亿,在中国内地布局超过4000家
  19. TCP/IP参考模型-传输层TCP
  20. Vue项目 缩放之后样式变乱

热门文章

  1. 人只会看到他想看的,不想看的视而不见
  2. 迅雷极速与旋风的对比
  3. 如何正确获取安卓内置SD卡的路径
  4. linux 开机自动运行命令_Linux内核分析-启动顺序、运行级别及开机启动(七)
  5. 正态分布里的西格玛_七大数据陷阱之油腻的统计学:正态分布来了
  6. 快速了解Linux curl命令
  7. oracle中存储函数,oracle中存储函数与存储过程的区别介绍
  8. C++ HDC作图 内存画图
  9. C# pictureBox显示图像 自动调整大小 缩放自适应 画图位置自适应
  10. android.support.v7.app.actionbaractivity 报错