Collector 1.2.0

Collector 1.2.0

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

Michaël Fortin维护。



Collector 1.2.0

提供类似于 Ruby 和 LINQ 的类别在 NSArray 上。已经过全面测试和文档化。

欢迎贡献。需要未被实现的功能?发送拉取请求!

特性

  • 一组安全(前缀)的 NSArray 类别方法。
  • 已完全测试(使用出色的 Kiwi 库)。查看测试以获取简单用法示例。
  • 已全面文档化(在 Xcode 5+ 中自动完成激活时显示方法摘要)。

概述

  • 使用 Collector,您可以得到 -ct_map:-ct_reduce: 以及其他类似 Ruby 的方法,这可以减少对大量数组操作模板代码的需求。使用 -ct_distinct 消除重复项,使用 -ct_objectsInRange: 获取指定范围内的对象,使用 -ct_all:-ct_any:-ct_none: 检查您的数组中的所有对象是否通过给定的测试,等等。

  • 一些与 NSNumber 数组一起使用的良好扩展:-ct_min-ct_max-ct_sum 以及更多。

  • 快速而简单的排序。

API

注意:以下声明可能与 Collector 实际提供的 API 不完全一致,此处显示仅供参考,以便您可以了解库的感觉。

NSArray+Collector

- (NSArray *)ct_arrayByRemovingObject:(id)object;
- (NSArray *)ct_arrayByRemovingObjectsInArray:(NSArray *)array;
- (id)ct_first:(CollectorConditionBlock)condition;
- (id)ct_first:(CollectorConditionBlock)condition orDefault:(id)defaultObject;
- (id)ct_last:(CollectorConditionBlock)condition;
- (id)ct_last:(CollectorConditionBlock)condition orDefault:(id)defaultObject;
- (NSArray *)ct_where:(CollectorConditionBlock)condition;
- (NSArray *)ct_map:(CollectorValueBlock)valueBlock;
- (id)ct_reduce:(id(^)(id cumulated, id object))reducingBlock;
- (id)ct_reduceWithSeed:(id)seed block:(id(^)(id cumulated, id object))reducingBlock;
- (void)ct_each:(CollectorOperationBlock)operation;
- (void)ct_eachWithIndex:(void(^)(id object, NSUInteger index))operation;
- (NSArray *)ct_except:(CollectorConditionBlock)condition;
- (NSArray *)ct_take:(NSUInteger)amount;
- (NSArray *)ct_distinct;
- (NSArray *)ct_distinct:(CollectorValueBlock)valueBlock;
- (NSArray *)ct_objectsInRange:(NSRange)range;
- (NSArray *)ct_objectsOfKind:(Class)kind;
- (id)ct_winner:(id(^)(id object1, id object2))comparisonBlock;
- (BOOL)ct_all:(CollectorConditionBlock)testBlock;
- (BOOL)ct_any:(CollectorConditionBlock)testBlock;
- (BOOL)ct_none:(CollectorConditionBlock)testBlock;
- (NSUInteger)ct_count:(CollectorConditionBlock)testBlock;

NSMutableArray+Queue

- (void)ct_enqueue:(id)object;
- (id)ct_dequeue;

NSMutableArray+Stack

- (void)ct_push:(id)object;
- (id)ct_pop;

NSArray+Contents

- (BOOL)ct_containsObjects:(NSArray *)array;
- (BOOL)ct_containsOnlyObjects:(NSArray *)array;
- (BOOL)ct_containsAnyObject:(NSArray *)objects;
- (BOOL)ct_areObjectsKindOfClass:(Class)klass;

NSArray+Numbers

- (NSNumber *)ct_min;
- (NSNumber *)ct_min:(CollectorNumberBlock)numberBlock;
- (NSNumber *)ct_max;
- (NSNumber *)ct_max:(CollectorNumberBlock)numberBlock;
- (NSNumber *)ct_sum;
- (NSNumber *)ct_sum:(CollectorNumberBlock)numberBlock;
- (NSNumber *)ct_average;
- (NSNumber *)ct_average:(CollectorNumberBlock)numberBlock;

NSArray+Sorting

- (NSArray *)ct_reversed;
- (NSArray *)ct_shuffled;
- (NSArray *)ct_orderedByAscending:(CollectorValueBlock)valueBlock;
- (NSArray *)ct_orderedByDescending:(CollectorValueBlock)valueBlock;

NSMutableArray+Collector

- (BOOL)ct_addObjectIfNoneEquals:(id)object;
- (BOOL)ct_addObjectIfNotNil:(id)object;

安装

作者

Michaël Fortin ([email protected])

许可证

Collector 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。