GitHub
介绍
一些文章提到:
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
使用类
- 调用方法
[NNDemoObjc sayHelloPop];
[[NNDemoObjc new] sayHelloPop];
- 输出日志
+[NNDemoObjc sayHelloPop] code say hello pop
-[NNDemoObjc sayHelloPop] code say hello pop
安装
NNPopObjc 支持 CocoaPods 方式集成。
安装 CocoaPods
使用以下命令安装:
1
$ gem install cocoapods
Podfile
将 NNPopObjc 添加到 Podfile
,通过 CocoaPods 集成 NNPopObjc 到 Xcode 项目:
1
2
3
4
5
6
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'TargetName' do
pod 'NNPopObjc', '~> 0.2.1'
end
执行命令:
1
pod install
如安装失败,提示:
1
[!] Unable to find a specification for `NNPopObjc`
尝试使用命令:
1
pod install --repo-update