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;

    }

  • 相关阅读:
    msyql 死锁
    yii2 操作数据库
    yii2 加载静态资源
    Yii2 之 UrlManager 实践 (一)
    Wordpress 之 Rewrite Rules
    yii2 使用gii生成代码文件
    权限设计的杂谈
    NodeJS —— 自定义流的实现
    浅析递归
    请将你的App签名文件放进保险箱
  • 原文地址:https://www.cnblogs.com/DevinSMR/p/5118623.html
Copyright © 2011-2022 走看看