NNPopObjc 受面向协议编程的启发,为协议提供了实现扩展的功能。
- 阅读 NNPopObjc Guide 文档。
在 .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
- 实现类
@implementation NNDemoObjc
@end
- 调用方法
[NNDemoObjc sayHelloPop];
[[NNDemoObjc new] sayHelloPop];
- 输出日志
+[NNDemoObjc sayHelloPop] code say hello pop
-[NNDemoObjc sayHelloPop] code say hello pop
NNPopObjc 支持多种方式集成方式。
使用以下命令安装:
$ gem install cocoapods
将 NNPopObjc 添加到 Podfile
,通过 CocoaPods 集成 NNPopObjc 到 Xcode 项目:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'TargetName' do
pod 'NNPopObjc'
end
执行命令:
pod install
[!] Unable to find a specification for `NNPopObjc`
尝试使用命令:
pod install --repo-update
Carthage 是一个去中心化的依赖管理器,用于构建依赖和提供二进制 Framework 。
可以通过以下 Homebrew 命令安装 Carthage :
$ brew update
$ brew install carthage
通过 Carthage 将 NNPopObjc 集成到 Xcode 项目中,需要在 Cartfile
中添加:
github "amisare/NNPopObjc" ~> 1.0.6
执行 carthage
构建 Framework ,并将 NNPopObjc.framework
添加到 Xcode 项目中。