OC:协议

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

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

协议的声明和类的声明类似,不过协议的声明是用@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 为 不忙)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • OC协议&代理 本文为个人学习思考总结,发表目的是为了获得批评指正,交流想法。 /***************手...
    卡普呆萌阅读 1,856评论 0 2
  • 协议:Protocol 它可以声明一些必须实现的方法和选择实现的方法 作用:用来声明一些方法 由一些列的方法声明组...
    lichengjin阅读 3,953评论 1 2
  • 夜雨后的空气,清新得很,鸟儿们起了个大早,用它们的歌声敲开了夏天的窗…… 雨后的空气让人在这个躁动的夏天有一种放松...
    念卿如是阅读 371评论 2 3
  • 今天要说一个故事,故事要从去年说起。 去年一场婚宴上,来了许多许久未见的同学,大家一聊high,就建了个微信群,每...
    这才是吐槽阅读 488评论 2 3
  • 今天继续拉肚子,身上感觉没有力气,已经养成的每日运动一下的习惯也不能坚持了,正在懊恼的时候想了想:为了坚...
    w_dahai阅读 141评论 0 1