此项目的目的是解决KVC集合操作符的缺点
明显的优势是条件的清晰度。
但我还希望以下内容
所有旨在公开使用的宏都有以下格式
宏名称(collection,collection中对象的类型,keyPath)
NSArray *、NSSet *等实例,例如self.transactionsTransaction * - 我选择要求包括星号的完整类型,以便明确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上关注我 获取更多类似内容!