2019-05-16

2019-05-16  本文已影响0人  无敌小蚂蚱这个名字被占用了

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

例:

import <Foundation/Foundation.h>

@protocol HelloProtocol <NSObject>

//默认就是required;
@required

@optional

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

import <Foundation/Foundation.h>

import "HelloProtocol.h"

@interface Person : NSObject<HelloProtocol>

@end

Person.m如下:

import "Person.h"

@implementation Person

@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;
}

上一篇 下一篇

猜你喜欢

热点阅读