Resort 0.3.0

Resort 0.3.0

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

Florian Ebeling维护。



Resort 0.3.0

  • 作者
  • Florian Ebeling

Resort是一个小型库,可以从键路径构建比较器,将单独的比较器组合成复合比较器,并可以构建反向比较器。

键路径比较器

从键路径进行排序可能是件很简单的事情,如果不是因为这些边界情况。这个库处理nil和NSNull值,并提供了特殊处理(如始终小于和始终大于比较)。它使用始终小于作为实际默认值。但是,如果您需要的话,可以指定空值始终被认为是较大的。或者,您可能希望快速失败并抛出异常。

对于已经通过compare:方法支持排序的Foundation类,顺序已经定义:例如,NSStringNSDateNSNumberNSIndexPath及其子类,如NSMutableStringNSDecimalNumber

在其他情况下,比较器只是对对象的-description执行排序。

复合比较器

从键路径构建的比较器与NSSortDiscriptors非常相似,但是有着易于组合的优势。这就是库的另一半,复合比较器。想想看,这是一种简单、可组合的方式来定义具有主要、次要等排序键的排序顺序。

用法

要运行示例项目;首先从Example目录中克隆仓库,然后运行pod install

创建和使用键路径比较器的示例如下

NSComparator comparator = [RESResort comparatorForKeyPath:@"name"];
NSArray *sorted = [@[ z, a ] sortedArrayUsingComparator:comparator];

两个比较器(基于键路径或其他方式)可以组合成一个复合比较器,并按如下方式使用

NSComparator nameComparator = [RESResort comparatorForKeyPath:@"name"];
NSComparator countComparator = [RESResort comparatorForKeyPath:@"count"];
NSComparator compoundComparator = [RESResort compoundComparatorWithComparatorArray:@[ nameComparator, countComparator ]];
NSArray *sorted = [_array sortedArrayUsingComparator:compoundComparator];

要求

仅支持Foundation框架。已测试于iOS 7和OS X 10.9。

作者

Florian Ebeling, [email protected]

许可证

Resort可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。