美文网首页
2019-05-16

2019-05-16

作者: 无敌小蚂蚱这个名字被占用了 | 来源:发表于2019-05-16 09:06 被阅读0次

    1、关于协议(protocol)
    如果该协议只供一个类对象使用,可直接写在使用者类对象中
    其他如果该协议可供多个(A)类对象使用,那就需要考虑把该协议提取出来放到一个单独的protocol.h文件中,在需要使用该协议的(A)父类(B)中遵守该协议实现,在其他子类(A)中可以选其重写协议方法。这样在其他类中(C)可直接通过A 调用协议方法

    例:

    import <Foundation/Foundation.h>

    @protocol HelloProtocol <NSObject>

    //默认就是required;
    @required

    • (void)requiredMethod;

    @optional

    • (void)optionalMethod;

    新建Person类,在Person.h中引入协议,如下:

    import <Foundation/Foundation.h>

    import "HelloProtocol.h"

    @interface Person : NSObject<HelloProtocol>

    @end

    Person.m如下:

    import "Person.h"

    @implementation Person

    • (void)requiredMethod{

      NSLog(@"requiredMethod——必须实现的方法");
      }

    • (void)optionalMethod{

      NSLog(@"optionalMethod——选择实现的方法");
      }

    @end

    之后在main.m中创建Person的对象去调用这些方法:

    import <Foundation/Foundation.h>

    import "Person.h"

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

    Person *jack = [[Person alloc] init];
    
    [jack requiredMethod];
    [jack optionalMethod];
    

    }
    return 0;
    }

    相关文章

      网友评论

          本文标题:2019-05-16

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