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