跳转到内容

WebObjects/Project WONDER/Frameworks/ERExtensions/ERXArrayUtilities

来自维基教科书,开放的书籍,开放的世界

ERXArrayUtilities 提供用于操作 NSArrays 的便捷方法和工具。许多方法是不言自明的。有关完整列表,请参阅 api (http://webobjects.mdimension.com/wonder/api/er/extensions/foundation/ERXArrayUtilities.html).

NSArray 运算符

[编辑 | 编辑源代码]

WebObjects 提供了 @sum、@avg 等数组运算符。ERXArrayUtilities 添加了许多其他运算符

SortOperator: 为键 sort 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@sort.firstName");
myArray.valueForKey("@sort.lastName,firstName");

在第一种情况下,将返回按姓氏升序排序的 myArray,在第二种情况下,按姓氏升序排序,然后按名字升序排序。

其他注册的排序运算符是:@sortAsc、@sortDesc、@sortInsensitiveAsc、@sortInsensitiveDesc


FetchSpecOperator: 为键 fetchSpec 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@fetchSpec.fetchUsers"); 

在这种情况下,将返回按名为“fetchUsers”的 EOFetchSpecification 过滤和排序的 myArray,该规范必须是第一个对象的实体中的基于模型的 fetchspec。


FlattenOperator: 为键 flatten 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@flatten"); 

在这种情况下,如果 myArray 是 NSArrays(NSArrays 等)的 NSArray,则将返回扁平化的 myArray。


IsEmptyOperator: 为键 isEmpty 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@isEmpty"); 


SubarrayWithRangeOperator: 为键 subarrayWithRange 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@subarrayWithRange.3-20"); 


UniqueOperator: 为键 unique 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKeyPath("@unique.someOtherPath"); 

在这种情况下,将仅返回 myArray 中唯一的那些对象。


RemoveNullValuesOperator: 为键 removeNullValues 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKeyPath("@removeNullValues.someOtherPath"); 

在这种情况下,将返回 myArray,不包含 NSKeyValueCoding.Null 的出现次数。


ObjectAtIndexOperator: 为键 objectAtIndex 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@objectAtIndex.3.firstName"); 


AvgNonNullOperator: 为键 avgNonNull 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@avgNonNull.revenue"); 

将对所有值求和并除以非空条目的数量。


ReverseOperator: 为键 reverse 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@reverse.someMorePath"); 

返回与正常情况下获得的结果相反的结果。


MedianOperator: 为键 median 定义一个 NSArray.Operator。

这允许使用以下键值路径:

myArray.valueForKey("@median.someMorePath"); 

返回给定键路径处数组元素的中位数。中位数是数组元素中一半元素高于它,一半元素低于它的值。因此,需要对数组进行排序,这可能会非常昂贵,具体取决于数组的大小。

华夏公益教科书