OC:协议

作者: Lin666 | 来源:发表于2016-08-17 17:29 被阅读0次

协议具体该怎么用呢?首先我们说一些协议的声明.

协议就是一套标准,这个标准里声明了很多方法,但是不关心具体这些方法是怎么实现的,具体的实现是由遵循这个协议的类去实现.

协议的声明和类的声明类似,不过协议的声明是用@protocol 声明的一组方法列表.列表中的方法是由其他的类去实现的,相当于类的@interface 部分的声明.

方法的声明是,可以有两个关键字去限制是否必须让遵循该协议的类去实现此方法:
@required 标注的方法为必须实现方法(也是默认的)
→@optional 标注的方法为可以选择实现

语法:
      @protocol 协议名称
         //方法列表
      @end

怎么让一个类去遵循这个协议呢,怎么去实现里面的方法?
语法:
        @interface ClassName:父类名<协议1,协议2,...>
        @end
        @implementaion ClassName
        //实现协议中的方法
        @end

比如:
外卖员要遵循 , 学生有空就自己去拿外面,没空就要送过来的协议
创建一个类:学生


1.创建一个类:学生    .h 文件    创建一个BOOL属性;  (判断学生 忙不忙 拿外卖)
2.创建一个协议类: 写一个协议方法 -(void)sendFood:(BOOL)flag; (必须实现的方法)
3.学生类中 .h 文件   创建一个协议的属性, id 类型 <协议类名称> delegate
4.创建一个送外卖的类: 外卖员     .h文件  导入协议头文件  然后遵循协议 <协议名称>  
5.外卖员   .m文件  判断  if  是 flag 就  "就拿上来"  else "自己过来拿" 
6.ViewController.m 文件  导入 学生和外卖员的头文件  创建stu 和 wa 并且 new出来
stu.delegate = wa;
给 stu.flag 赋值 = yes 或者 no; (YES 为 忙,  NO 为 不忙)

相关文章

  • 为什么 Swift 关联类型的协议需要做为泛型约束使用(译)

    一、OC 协议:发消息 OC 的协议本质是消息的集合。例如,UITableViewDataSource 协议有请求...

  • iOS编写高质量代码(四)

    协议 与 分类 协议(protocol):OC中的协议与Java里的接口(interface)类似,OC不支持多继...

  • Swift-协议

    一、概览 二、协议的定义和遵守 二、协议的继承和限定类遵守 三、方法参数要求多个协议 四、OC协议兼容 OC中协议...

  • OC和JS交互(一):协议拦截

    协议拦截 通俗点理解,就是定义好一个协议,JS使用该协议来调用OC/Swift的方法,并且传值给OC/Swift。...

  • OC:协议

    协议具体该怎么用呢?首先我们说一些协议的声明. 协议就是一套标准,这个标准里声明了很多方法,但是不关心具体这些方法...

  • OC协议

    协议:Protocol 它可以声明一些必须实现的方法和选择实现的方法 作用:用来声明一些方法 由一些列的方法声明组...

  • OC协议在解耦中的应用

    OC协议在解耦中的应用 1,oc中利用协议代理解耦, delegate是OC中常用传值模式,这是一种很好的设计...

  • iOS - Swift 面向协议编程(一)

    OC无法做到面向协议开发,而Swift可以,因为Swift可以做到协议方法的具体实现,而OC不行 面向对象开发 传...

  • Swift-面向协议编程

    前言 OC无法做到面向协议开发,而Swift可以,因为Swift可以做到协议方法的具体实现,而OC不行 面向对象开...

  • swift4.1 系统学习十四 协议

    // 协议/*OC中也有协议,swift中的协议的作用与OC中基本一样,只是在写法上有一点区别。我们使用 prot...

网友评论

      本文标题:OC:协议

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