NUT TALK

「离开世界之前 一切都是过程」

码农的心结:编程风格

码农的心结:编程风格

你平时定义一个函数的风格可能是这样的: 1 2 3 4 5 6 7 int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } 然而,你团队中的一个大兄弟的风格是这样的: 1 2 3 4 5 6 7 8 int Foo(bool isBar...

NNPopObjc:在 Objective-C 上进行面向协议的编程(下)

NNPopObjc:在 Objective-C 上进行面向协议的编程

在上半部分主要介绍了 NNPopObjc 的使用,包括默认协议扩展、约束协议扩展等。本文 (下) 主要介绍 NNPopObjc 的实现思路和原理。 神奇的宏 在 NNPopObjc 中使用宏实现了关键字@nn_extension(...), @nn_where(...) 。但限于篇幅,这里我们不去详细的讲解这些宏是如何实现的。对于本节我们会解释元编程的概念及其编程思维。一旦对元编程及其...

NNPopObjc:在 Objective-C 上进行面向协议的编程(上)

NNPopObjc:在 Objective-C 上进行面向协议的编程

本文将介绍基于 NNPopObjc 在 Objective-C 上进行面向协议的编程。因为全部内容比较长,所以分成了上下两个部分,本文 (上) 主要介绍了 NNPopObjc 的使用,包括默认协议扩展、约束协议扩展等。下半部分,用于介绍 NNPopObjc 的实现思路和原理。 引子 基于 Swift 特性,Apple 在 2015 年 WWDC 上提出了面向协议编程 (Protocol ...

NNPopObjc Objective-C 面向协议的编程

NNPopObjc Objective-C 面向协议的编程

GitHub NNPopObjc 介绍 一些文章提到: OC无法做到面向协议开发,而Swift可以,因为Swift可以做到协议方法的具体实现,而OC不行 NNPopObjc 受面向协议编程的启发,为协议提供了实现扩展的功能。实现 Objective-C 面向协议的编程。 快速开始 声明协议 在 .h 文件中声明协议 @protocol NNDemoProtoc...

NNDecimalNumber 提供链式调用计算 NSDecimalNumber

提供 NSDecimalNumber 运算扩展 ,通过链式调用简化数值计算。

GitHub NNDecimalNumber 介绍 提供 NNString, NSNumber 的 NSDecimalNumber 的计算及比较分类 ,通过链式调用简化数值计算。 使用 示例一:全部使用 NSNumber 计算 1 2 //( ( ( ( 3 - 2 + 5 ) × 3 ) × ( 10 × 2 ) ) ÷ 2 ) NSString *v ...