咪哚网

nnpopobjcobjective-c面向协议的编程

GitHub

  • NNPopObjc

介绍

一些文章提到:

OC无法做到面向协议开发,而Swift可以,因为Swift可以做到协议方法的具体实现,而OC不行

NNPopObjc 受面向协议编程的启发,为协议提供了实现扩展的功能。实现 Objective-C 面向协议的编程。

快速开始

声明协议

.h 文件中声明协议

@protocol NNDemoProtocol <NSObject>

@optional
- (void)sayHelloPop;
+ (void)sayHelloPop;

@end

扩展协议

扩展协议需要在 .m 中实现

/// 默认协议扩展
@nn_extension(NNDemoProtocol)

+ (void)sayHelloPop {
    DLog(@"+[%@ %s] code say hello pop", self, sel_getName(_cmd));
}

- (void)sayHelloPop {
    DLog(@"-[%@ %s] code say hello pop", [self class], sel_getName(_cmd));
}

@end

遵守协议

  • 创建类
@interface NNDemoObjc : NSObject <NNDemoNameProtocol>

@end
  • 实现类

		
1
2
3
@implementation NNDemoObjc

@end
最近关注