美文网首页
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