美文网首页
NNPopObjc: Objective-C 面向协议的编程

NNPopObjc: Objective-C 面向协议的编程

作者: amisarex | 来源:发表于2019-10-11 20:25 被阅读0次

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
  • 实现类
@implementation NNDemoObjc

@end

使用类

  • 调用方法
[NNDemoObjc sayHelloPop];
[[NNDemoObjc new] sayHelloPop];
  • 输出日志
+[NNDemoObjc sayHelloPop] code say hello pop
-[NNDemoObjc sayHelloPop] code say hello pop

安装

NNPopObjc 支持 CocoaPods 方式集成。

安装 CocoaPods

使用以下命令安装:

$ gem install cocoapods

Podfile

将 NNPopObjc 添加到 Podfile ,通过 CocoaPods 集成 NNPopObjc 到 Xcode 项目:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

target 'TargetName' do
pod 'NNPopObjc', '~> 1.0.7'
end

执行命令:

pod install

如安装失败,提示:

[!] Unable to find a specification for `NNPopObjc`

尝试使用命令:

pod install --repo-update

相关文章

网友评论

      本文标题:NNPopObjc: Objective-C 面向协议的编程

      本文链接:https://www.haomeiwen.com/subject/wzbxmctx.html