此项目的目的是解决KVC集合操作符的缺点
明显的优势是条件的清晰度。
但我还希望以下内容
所有旨在公开使用的宏都有以下格式
宏名称(collection,collection中对象的类型,keyPath)
NSArray *
、NSSet *
等实例,例如self.transactions
Transaction *
- 我选择要求包括星号的完整类型,以便明确payee.name
...除了针对NSNumber *
集合的“添加便利”宏外,请见下文。
我可以创建一个包含所有交易付款人姓名的数组,如下所示
NSArray *payeeNames = DZLUnionOfObjects(self.transactions, Transaction *, payee.name);
@avg
@count
@sum
@min
,增加了对集合中的对象响应 -compare
的编译时验证@max
,增加了对集合中的对象响应 -compare
的编译时验证NSNumber *
实例NSNumber *
实例double
或兼容的标量类型double
或兼容的标量类型NSNumber *
对象的集合——并返回平均值NSNumber *
对象的集合——并返回总和@distinctUnionOfObjects
@unionOfObjects
@distinctUnionOfArrays
@unionOfArrays
@distinctUnionOfSets
您可以使用上述宏来获取一组数字的平均值,如下所示
NSNumber *average = DZLAverage(numbers, NSNumber *, self);
我为此和一个求和函数增加了便利方法,用法如下
NSNumber *average = DZLAverageOfNumbers(numbers);
NSNumber *sum = DZLSumOfNumbers(numbers);
使用 CocoaPods,或者直接将 DZLCollectionOperators.h 文件添加到您的项目中。
就这么简单,它只是一个包含宏的头文件!
如果您喜欢这个,可以 在Twitter上关注我 获取更多类似内容!