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

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。