zoukankan      html  css  js  c++  java
  • Protocol(协议)(二十)

    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;

    }

  • 相关阅读:
    表示数值的字符串(C++描述)
    单链表是否有环及环入口点
    医院信息运维系统-信息科专用运维系统
    c# List 按类的指定字段排序
    运维系统说明
    更新库下载
    mysql数据库备份
    网络编程基础
    面向对象和过程,一样的价格,不一样的口味
    模块的导入顺序细节
  • 原文地址:https://www.cnblogs.com/DevinSMR/p/5118623.html
Copyright © 2011-2022 走看看