最近学习了一种新的委托实现方式,比起使用协议来说更为简单——使用协议类的方式。
协议类是我自己的叫法而已,其实就是一个类,在类里面定义需要帮其他类做的事情(方法)。
同样的,需要再其他类定义一个id,指向这个协议类。
其实原理跟使用协议是大同小异的,但使用协议类的话,就不需要另外声明协议和遵循协议,感觉简单些。
一、这里第一步就已经是(委托实现方式1 - 协议方式(protocol))里面的第二步了:
// DelegateClass.h
#import <Foundation/Foundation.h>
//想要我帮你实现什么方法,直接在方法里面定义就是了:
@interface DelegateClass : NSObject
- (void)printLogs1;
@end
二、跟方式1一样,在主类里面定义一个id属性,用于指向委托类对象:
// MyClass.h
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
@property (nonatomic,strong) iddelegate;
- (void)helpMeToPrint;
@end
// MyClass.m
#import "MyClass.h"
@implementation MyClass
- (void)helpMeToPrint {
NSLog(@"OK,NoProblem!");
}
@end
三、MyClass的delegate指向delegateclass实例对象,搞定!